JavaRush /Blog Jawa /Random-JV /Tataran 34. Wangsulan pitakonan wawancara babagan topik t...
lichMax
tingkat
Санкт-Петербург

Tataran 34. Wangsulan pitakonan wawancara babagan topik tingkat

Diterbitake ing grup
Aku nggoleki situs kasebut nggunakake panelusuran asliku lan nggoleki kabeh nggunakake Google - ora ana jawaban kanggo pitakonan saka level iki. Mungkin aku ora kejawab soko, lan padha isih kene nang endi wae ing situs!? Level 34. Wangsulan pitakonan wawancara babagan topik level - 1Ing kasus, aku masang jawaban sing aku nulis kanggo aku: Pitakonan kanggo wawancara:
  1. Apa iku koleksi sampah?
  2. Nalika metode kasebut diarani finalize?
  3. Apa sing kedadeyan yen finalizeana pengecualian ing metode?
  4. Apa sing kedadeyan SoftReference?
  5. Apa sing kedadeyan WeakReference?
  6. Apa sing kedadeyan PhantomReference?
  7. Piye cara kerjane WeakHashMap? Ing ngendi iku digunakake?
  8. Napa sampeyan kudu ngliwati antrian menyang konstruktor PhantomReference?
  9. Napa sampeyan butuh logger?
  10. Apa setelan logger sampeyan ngerti?
wangsulanku:
  1. Iki minangka mekanisme kanggo ngrusak obyek sing ora perlu. Objek sing ora dibutuhake yaiku obyek sing ora digunakake. Ana rong cara kanggo nemokake obyek kasebut: ngetang referensi lan nglacak. Ing kasus sing sepisanan, saben obyek digandhengake karo variabel sing nyimpen nomer referensi kanggo obyek iki. Yen angka iki mudhun menyang nol, obyek kasebut dianggep mati. Ing kasus kapindho, kolektor sampah nderek referensi obyek saka titik ROOT kanggo mburi (nganti nilai null), traversing kabeh wit. Obyek sing ora bisa digayuh saka titik root dianggep mati. Titik ROOT kabeh utas aktif, cara utama, argumen metode main(), uga kabeh variabel statis kelas ing ngendi metode kasebut dumunung main().

    Nemtokake obyek sing layak kanggo dirusak mung minangka bagean pisanan saka tugas tukang sampah. Bagean kapindho bener-bener mbusak lan nggarap memori. Pendekatan hibrida digunakake ing kene. Kabeh memori sing kasedhiya kanggo obyek dipérang dadi telung wilayah: area obyek enom, area obyek lawas lan area obyek permanen (iki kelas, metadata, strings interned, etc.). Wilayah pisanan dipérang dadi telung subarea: Eden lan ruang suvivor 1 lan 2. Eden nyimpen kabeh obyek sing mentas digawe. Loro zona sing isih ana nyimpen obyek sing bisa urip saka koleksi sampah pungkasan. Pengumpul sampah nggarap kabeh wilayah iki (wilayah obyek enom) kaya ing ngisor iki. Sajrone koleksi sampah sabanjure, dheweke nemokake obyek urip ing wilayah Eden lan nyalin menyang wilayah sing isih urip nomer loro. Sawise iki, dheweke uga nggoleki obyek urip ing wilayah pisanan lan nyalin menyang wilayah liya sing slamet, utawa, yen wis cukup "lawas", menyang wilayah generasi lawas. Sawise iku, dheweke ngresiki wilayah Eden lan wilayah sing slamet pisanan. Sabanjure, dheweke nganggep wilayah liya sing slamet dadi sing pertama. Lan iku, koleksi sampah ends kanggo wilayah iki.

    Для второй области сборка мусора идёт несколько по-другому. Там есть одна большая область, она ни на что не делится, но сборщик мусора все живые 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. A logger dibutuhake kanggo nyimpen informasi babagan prilaku program, uga sawetara negara. Bisa digunakake kanggo debugging lan ngenali kesalahan lan kegagalan program. Logger uga ngidini pangembang nampa umpan balik saka program nalika lagi mlaku. Kajaba iku, yen ana kegagalan kritis, logger bisa kanthi cepet menehi kabar marang wong sing bener (umpamane, pangembang, klien, manajer proyek, dhukungan teknis, lan liya-liyane) babagan kegagalan kasebut.

  10. Nalika nyetel logging, sampeyan bisa nemtokake perkara ing ngisor iki:

    • Panggonan ngendi informasi bakal ditulis (file, console, database, jaringan, etc.)
    • pesen tingkat apa sing bakal direkam
    • jinis entri log
    • kanggo file sampeyan bisa nemtokake: path kanggo file lan direktori, ukuran file, nomer file
    • nemtokake kanggo saben paket individu tingkat pesen dhewe sing bakal ditulis ing log
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION