JavaRush /Java блогы /Random-KK /Деңгей 34. Деңгейлік тақырып бойынша сұхбат сұрақтарына ж...
lichMax
Деңгей
Санкт-Петербург

Деңгей 34. Деңгейлік тақырып бойынша сұхбат сұрақтарына жауаптар

Топта жарияланған
Мен сайтты жергілікті іздеу арқылы іздедім және барлығын Google арқылы іздедім - бұл деңгейдегі сұрақтарға жауаптар жоқ. Мүмкін мен бірдеңені жіберіп алған шығармын және олар әлі де сайттың бір жерінде!? 34-деңгей. Деңгей – 1 тақырыбы бойынша сұхбат сұрақтарына жауаптарМүмкін болса, мен өзім үшін жазған жауаптарымды қоса беремін: Сұхбатқа арналған сұрақтар:
  1. Қоқыс жинау дегеніміз не?
  2. Әдіс қашан аталады finalize?
  3. finalizeӘдісте ерекше жағдай орын алса не болады ?
  4. Не болды SoftReference?
  5. Не болды WeakReference?
  6. Не болды PhantomReference?
  7. Бұл қалай жұмыс істейді WeakHashMap? Ол қайда қолданылады?
  8. Неліктен конструкторға кезек беру керек PhantomReference?
  9. Сізге ағаш кесуші не үшін қажет?
  10. Қандай тіркеуші параметрлерін білесіз?
Менің жауаптарым:
  1. Бұл қажетсіз нысандарды жою механизмі. Қажет емес an objectілер – пайдаланылмайтын an objectілер. Мұндай an objectілерді табудың екі жолы бар: анықтамалық санау және бақылау. Бірінші жағдайда әрбір нысан осы нысанға сілтемелер санын сақтайтын айнымалымен байланысты. Егер бұл сан нөлге түссе, онда нысан өлі болып саналады. Екінші жағдайда, қоқыс жинағыш түбірлік нүктелерден соңына дейін (нөлдік мәнге дейін) осы ағашты толық айналып өтетін нысан сілтемелерін бақылайды. Түбір нүктелерінен жете алмайтын нысандар өлі болып саналады. Түбір нүктелері - барлық белсенді ағындар, негізгі әдіс, әдіс аргументтері main(), сонымен қатар әдіс орналасқан сыныптың барлық статикалық айнымалылары main().

    Қай an objectілерді жоюға жарамды екенін анықтау қоқыс жинаушы жұмысының бірінші бөлігі ғана. Екінші бөлік шын мәнінде оларды жою және жадпен жұмыс істеу. Мұнда гибридті тәсіл қолданылады. Объектілер үшін қол жетімді барлық жады үш аймаққа бөлінеді: жас нысандардың ауданы, ескі нысандардың ауданы және тұрақты an objectілердің ауданы (бұл сыныптар, метадеректер, интернді жолдар және т.б.). Бірінші аймақ тағы үш қосалқы аймаққа бөлінген: Eden және suvivor кеңістігі 1 және 2. Eden барлық жаңадан жасалған нысандарды сақтайды. Қалған екі аймақта соңғы қоқыс жинаудан аман қалған нысандар сақталады. Қоқыс жинағыш бүкіл аумақпен (жас нысандардың ауданы) келесідей жұмыс істейді. Келесі қоқыс жинау кезінде ол Едем аймағында тірі заттарды тауып, оларды екінші аман қалған аймаққа көшіреді. Осыдан кейін ол бірінші аймақта тірі нысандарды іздейді және оларды тірі қалғандардың екінші аймағына немесе егер олар жеткілікті «ескі» болса, ескі ұрпақ аймағына көшіреді. Содан кейін ол Едем аймағын және бірінші аман қалған аумақты тазартады. Содан кейін ол аман қалғандардың екінші аймағын бірінші деп санайды. Міне, осы аймақ үшін қоқыс жинау аяқталды.

    Для второй области сборка мусора идёт несколько по-другому. Там есть одна большая область, она ни на что не делится, но сборщик мусора все живые 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