JavaRush /جاوا بلاگ /Random-SD /ليول 34. ليول جي موضوع تي انٽرويو سوالن جا جواب
lichMax
سطح
Санкт-Петербург

ليول 34. ليول جي موضوع تي انٽرويو سوالن جا جواب

گروپ ۾ شايع ٿيل
مون پنهنجي مادري ڳولها استعمال ڪندي سائيٽ کي ڳولهيو ۽ گوگل استعمال ڪندي سڀ ڪجهه ڳولهيو - هن سطح کان سوالن جا جواب نه آهن. ٿي سگهي ٿو مون کي ڪجهه ياد ڪيو، ۽ اهي اڃا تائين هتي سائيٽ تي آهن!؟ ليول 34. ليول جي موضوع تي انٽرويو سوالن جا جواب - 1صرف ان صورت ۾، مان انهن جوابن کي ڳنڍي رهيو آهيان جيڪي مون پنهنجي لاءِ لکيا آهن: انٽرويو لاءِ سوال:
  1. ڪچرو گڏ ڪرڻ ڇا آهي؟
  2. جڏهن طريقو سڏيو ويندو آهي finalize؟
  3. ڇا ٿيندو جيڪڏهن finalizeهڪ استثنا ڪنهن طريقي سان ٿئي ٿي؟
  4. ڇا ٿيو آهي SoftReference؟
  5. ڇا ٿيو آهي WeakReference؟
  6. ڇا ٿيو آهي PhantomReference؟
  7. اهو ڪيئن ڪم ڪندو آهي WeakHashMap؟ اهو ڪٿي استعمال ٿيندو آهي؟
  8. توهان کي هڪ قطار کي تعمير ڪندڙ ڏانهن ڇو وڃڻ جي ضرورت آهي PhantomReference؟
  9. توهان کي هڪ logger جي ضرورت ڇو آهي؟
  10. توهان ڪهڙي لاگر سيٽنگون ڄاڻو ٿا؟
منهنجا جواب:
  1. هي غير ضروري شين کي تباهه ڪرڻ لاء هڪ ميکانيزم آهي. غير ضروري شيون غير استعمال ٿيل شيون آهن. اهڙيون شيون ڳولڻ جا ٻه طريقا آهن: حوالن جي ڳڻپ ۽ ٽريڪنگ. پهرين صورت ۾، هر اعتراض هڪ متغير سان لاڳاپيل آهي جيڪو هن اعتراض جي حوالن جو تعداد محفوظ ڪري ٿو. جيڪڏهن اهو نمبر صفر تي اچي ٿو، پوء اعتراض کي مئل سمجهيو ويندو آهي. ٻي صورت ۾، ڪچرو گڏ ڪرڻ وارو اعتراض جي حوالن کي روٽ پوائنٽن کان آخر تائين (نال قيمت تائين)، هن سڄي وڻ کي پار ڪندي. اهي شيون جن تائين اهو روٽ پوائنٽن کان پهچي نٿو سگهي، انهن کي مئل سمجهيو ويندو آهي. روٽ پوائنٽس تمام فعال موضوع آهن، مکيه طريقو، طريقي جا دليل main()، ۽ گڏوگڏ طبقي جا سڀئي جامد متغير آهن جن ۾ طريقو واقع آهي main().

    اهو طئي ڪرڻ ته ڪهڙيون شيون تباهي لاءِ اهل آهن صرف ڪچرو گڏ ڪندڙ جي نوڪري جو پهريون حصو آهي. ٻيو حصو اصل ۾ انهن کي حذف ڪرڻ ۽ ميموري سان ڪم ڪري رهيو آهي. هتي هڪ هائبرڊ طريقو استعمال ڪيو ويندو آهي. شيون لاءِ موجود سموري ميموري کي ٽن علائقن ۾ ورهايو ويو آهي: نوجوان شين جو علائقو، پراڻن شين جو علائقو ۽ مستقل شين جو علائقو (اهي آهن ڪلاس، ميٽاڊيٽا، اندروني تار وغيره). پهريون علائقو ٽن وڌيڪ ذيلي علائقن ۾ ورهايو ويو آهي: عدن ۽ بچاء واري جڳهه 1 ۽ 2. ايڊن سڀني نئين ٺاهيل شين کي ذخيرو ڪري ٿو. باقي ٻه زون شيون ذخيرو ڪن ٿيون جيڪي آخري ڪچرو گڏ ڪرڻ کان بچي وڃن ٿيون. ڪچرو گڏ ڪندڙ هن سڄي علائقي (نوجوان شين جي ايراضي) سان هن ريت ڪم ڪري ٿو. ايندڙ ڪچري کي گڏ ڪرڻ دوران، هو عدن واري علائقي ۾ رهندڙ شيون ڳولي ٿو ۽ انهن کي نقل ڪري ٿو ٻئي بچيل علائقي ڏانهن. ان کان پوء، هو پهرين علائقي ۾ جاندار شيون ڳولي ٿو ۽ انهن کي نقل ڪري ٿو يا ته بقا جي ٻئي علائقي ڏانهن، يا، جيڪڏهن اهي اڳ ۾ ئي "پراڻي" آهن، پراڻي نسل جي علائقي ڏانهن. ان کان پوء، هو عدن واري علائقي کي صاف ڪري ٿو ۽ پهريون بچاء وارو علائقو. اڳتي هلي، هو بقا وارن جي ٻئي حصي کي پهرين سمجهي ٿو. ۽ اھو اھو آھي، ڪچرو گڏ ڪرڻ ھن علائقي لاءِ ختم ٿئي ٿو.

    Для второй области сборка мусора идёт несколько по-другому. Там есть одна большая область, она ни на что не делится, но сборщик мусора все живые an objectы в ней во время своей работы перемещает в начало области. Соответственно, вторая часть области будет состоять только из пустого пространства и мёртвых an objectов. После этого сборщик мусора завершает свою работу.

  2. Перед уничтожение an object сборщиком мусора. Также можно вручную запустить вызовы этого метода у всех недостижимых an objectов, для этого надо вызвать метод System.runFinalization() or Runtime.getRuntime().runFinalization().

  3. Это исключение будет проигнорировано, и произойдёт выход из метода.

  4. SoftReference переводится How "мягкая link". Эта link на an object, но более слабая, чем обычная link (StrongReference). Объекты, на которые сущесвуют только мягкие ссылки, называются мягcodeостижимыми. Такие an objectы не уничтожаются в обычном случае. Но если у JVM закочиналась память, то сборщик мусоры удаляет все такие an objectы.

  5. WeakReference — это так называемая слабая link на an object. Она ещё слабее Soft-ссылки. Все an objectы, на которые существуют только слабые ссылки, будут удалены при ближайщей сборке мусора.

  6. PhantomReference — это самая слабая link. Механизм работы с такими link запускается только если на an object нет больше ниHowих других ссылок. Призрачные ссылки используются для сложной proceduresы удаления an object. Это может быть необходимо, если an object делает что за граница Java-машины, например, вызывает низкоуровневые функции ОС or пишет своё состояние в файл, or делает ещё что-то важное и сложное.

    Механизм работы с такими linkми следующий. Если на an object не осталось больше ниHowих других ссылок, и у него переопределён метода finalize(), то этот метода будет вызван во время ближащей сборки мусора. Если же этот метод не переопределён, то этот an object пропускает текущую сборку мусора, и попадает только в следующую. Во время этой (следующей) сборки мусора данный an object помещается в очередь призрачных an objectов, из которой будет удалён, когда у его призрачной ссылки вызовут метод clear(). Также стоит отметить, что метода get() у призрачной link всегда возвращает null (в отличие от двух других несильных ссылок, у которых он возвращает null, только если an object уже уничтожен).

  7. WeakHashMap — это HashMap, у которого ключами являются слабые ссылки. Поэтому, если во время ближайшей сборки мусора будет обнаружено, что на an object существует только link в WeakHashMap, то из WeakHashMap будет удалена вся пара "ключ-meaning", связанная с этим an objectом.

    В связи с этим данная коллекция может быть использована для хранения Howой-то дополнительной, не очень важной информации об an objectе. Также её удобно использоваться для хранения Howой-то временной информации (которая нужная только в рамках данной операции).

  8. Эта очередь используется для отслеживания того, что an object больше не нужен. Может быть использовано для закрытия ресурсов, открытых данным an objectом (например, удаление созданных файлов).

  9. پروگرام جي رويي جي باري ۾ معلومات کي بچائڻ لاء هڪ لاگر جي ضرورت آهي، انهي سان گڏ ان جي ڪجهه رياستن. ڊيبگنگ ۽ پروگرام جي غلطين ۽ ناڪامين جي نشاندهي ڪرڻ لاءِ استعمال ٿي سگھي ٿو. لاگر پڻ ڊولپر کي اجازت ڏئي ٿو ته هو پنهنجي پروگرام مان موٽ حاصل ڪري جڏهن اهو هلندو آهي. ان کان علاوه، نازڪ ناڪامين جي صورت ۾، لاگر جلدي صحيح ماڻهن کي مطلع ڪري سگهي ٿو (مثال طور، ڊولپر، ڪلائنٽ، پروجيڪٽ مينيجرز، ٽيڪنيڪل سپورٽ، وغيره) انهن ناڪامين بابت.

  10. جڏهن لاگنگ کي ترتيب ڏيڻ، توهان هيٺ ڏنل شيون بيان ڪري سگهو ٿا:

    • جڳھ جتي معلومات لکي ويندي (فائل، ڪنسول، ڊيٽابيس، نيٽ ورڪ، وغيره)
    • ڪهڙي سطح جا پيغام رڪارڊ ڪيا ويندا
    • لاگ انٽريشن جو قسم
    • فائلن لاءِ توھان وضاحت ڪري سگھو ٿا: فائل ۽ ڊاريڪٽري ڏانھن رستو، فائل سائيز، فائلن جو تعداد
    • هر انفرادي پيڪيج لاءِ ان جي پنهنجي سطح جي پيغامن جي وضاحت ڪريو جيڪي لاگ ۾ لکيا ويندا
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION