JavaRush /Java Blogu /Random-AZ /Səviyyə 34. Səviyyə mövzusu üzrə müsahibə suallarına cava...
lichMax
Səviyyə
Санкт-Петербург

Səviyyə 34. Səviyyə mövzusu üzrə müsahibə suallarına cavablar

Qrupda dərc edilmişdir
Mən öz doğma axtarışımdan istifadə edərək saytı axtardım və Google-dan istifadə edərək hər şeyi axtardım - bu səviyyədə olan suallara cavab yoxdur. Bəlkə mən nəyisə qaçırdım və onlar hələ də saytdadırlar!? Səviyyə 34. Səviyyə - 1 mövzusu üzrə müsahibə suallarına cavablarHər halda, özüm üçün yazdığım cavabları əlavə edirəm: Müsahibə üçün suallar:
  1. Zibil toplama nədir?
  2. Metod nə vaxt adlanır finalize?
  3. finalizeMetodda istisna baş verərsə nə olar ?
  4. Nə baş verdi SoftReference?
  5. Nə baş verdi WeakReference?
  6. Nə baş verdi PhantomReference?
  7. Bu necə işləyir WeakHashMap? Harada istifadə olunur?
  8. Konstruktora nə üçün növbə keçmək lazımdır PhantomReference?
  9. Niyə loggerə ehtiyacınız var?
  10. Hansı logger parametrlərini bilirsiniz?
Cavablarım:
  1. Bu, lazımsız obyektləri məhv etmək üçün bir mexanizmdir. Lazımsız obyektlər istifadə olunmayan obyektlərdir. Belə obyektləri tapmağın iki yolu var: istinad sayma və izləmə. Birinci halda, hər bir obyekt bu obyektə istinadların sayını saxlayan dəyişənlə əlaqələndirilir. Bu rəqəm sıfıra enərsə, o zaman obyekt ölü sayılır. İkinci halda, zibil kollektoru bütün ağacı keçərək, kök nöqtələrindən sonuna (null dəyərinə qədər) obyekt istinadlarını izləyir. Kök nöqtələrindən çata bilmədiyi cisimlər ölü sayılır. Kök nöqtələr bütün aktiv iplər, əsas metod, metodun arqumentləri main(), həmçinin metodun yerləşdiyi sinfin bütün statik dəyişənləridir main().

    Hansı obyektlərin məhv olmaq üçün uyğun olduğunu müəyyən etmək zibil yığanın işinin yalnız birinci hissəsidir. İkinci hissə əslində onları silmək və yaddaşla işləməkdir. Burada hibrid yanaşmadan istifadə olunur. Obyektlər üçün mövcud olan bütün yaddaş üç sahəyə bölünür: gənc obyektlərin sahəsi, köhnə obyektlərin sahəsi və daimi obyektlərin sahəsi (bunlar siniflər, metadata, interned strings və s.). Birinci sahə daha üç alt sahəyə bölünür: Eden və suvivor sahəsi 1 və 2. Eden bütün yeni yaradılmış obyektləri saxlayır. Qalan iki zonada sonuncu zibil kolleksiyasından sağ qalan obyektlər saxlanılır. Zibil kollektoru bütün bu sahə ilə (gənc obyektlərin sahəsi) aşağıdakı kimi işləyir. Növbəti zibil yığımı zamanı o, Eden ərazisində canlı obyektlər tapır və onları ikinci sağ qalan əraziyə köçürür. Bundan sonra o, həm də birinci sahədə canlı obyektləri axtarır və onları ya sağ qalanların ikinci sahəsinə, ya da əgər onlar artıq kifayət qədər “yaşlı”dırsa, köhnə nəslin sahəsinə köçürür. Daha sonra o, Eden ərazisini və ilk sağ qalan ərazini təmizləyir. Sonra, sağ qalanların ikinci sahəsini birinci hesab edir. Və budur, bu sahə üçün zibil yığılması başa çatır.

    Для второй области сборка мусора идёт несколько по-другому. Там есть одна большая область, она ни на что не делится, но сборщик мусора все живые 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. Proqramın davranışı, eləcə də onun bəzi dövlətləri haqqında məlumatı saxlamaq üçün logger lazımdır. Proqram səhvlərini və uğursuzluqlarını aradan qaldırmaq və müəyyən etmək üçün istifadə edilə bilər. Qeydiyyatçı həm də proqramçıya proqram işləyərkən ondan rəy almağa imkan verir. Bundan əlavə, kritik uğursuzluqlar halında, logger bu uğursuzluqlar barədə lazımi insanları (məsələn, tərtibatçılar, müştərilər, layihə menecerləri, texniki dəstək və s.) tez xəbərdar edə bilər.

  10. Qeydiyyatı qurarkən aşağıdakıları təyin edə bilərsiniz:

    • məlumatın yazılacağı yer (fayl, konsol, verilənlər bazası, şəbəkə və s.)
    • hansı səviyyəli mesajlar qeydə alınacaq
    • log girişlərinin növü
    • fayllar üçün təyin edə bilərsiniz: fayla və qovluğa gedən yol, fayl ölçüsü, faylların sayı
    • hər bir fərdi paket üçün jurnala yazılacaq mesajların öz səviyyəsini təyin edin
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION