- Apa itu pengumpulan sampah?
- Kapan metode ini dipanggil
finalize
? - Apa yang terjadi jika
finalize
pengecualian terjadi pada suatu metode? - Apa yang terjadi
SoftReference
? - Apa yang terjadi
WeakReference
? - Apa yang terjadi
PhantomReference
? - Bagaimana cara kerjanya
WeakHashMap
? Di mana itu digunakan? - Mengapa Anda perlu meneruskan antrian ke konstruktor
PhantomReference
? - Mengapa Anda membutuhkan seorang logger?
- Pengaturan logger apa yang Anda ketahui?
-
Ini adalah mekanisme untuk menghancurkan objek yang tidak diperlukan. Benda yang tidak dibutuhkan adalah benda yang tidak terpakai. Ada dua cara untuk menemukan objek tersebut: penghitungan referensi dan penelusuran. Dalam kasus pertama, setiap objek dikaitkan dengan variabel yang menyimpan jumlah referensi ke objek tersebut. Jika angka ini turun menjadi nol, maka benda tersebut dianggap mati. Dalam kasus kedua, pengumpul sampah mengikuti referensi objek dari titik akar hingga akhir (hingga nilai nol), melintasi seluruh pohon ini. Benda yang tidak dapat dijangkau dari titik akarnya dianggap mati. Titik akar adalah semua thread aktif, metode utama, argumen metode
main()
, serta semua variabel statis kelas tempat metode tersebut beradamain()
.Menentukan benda mana yang layak untuk dimusnahkan hanyalah bagian pertama dari tugas pemulung. Bagian kedua sebenarnya menghapusnya dan bekerja dengan memori. Pendekatan hybrid digunakan di sini. Semua memori yang tersedia untuk objek dibagi menjadi tiga area: area objek muda, area objek lama, dan area objek permanen (ini adalah kelas, metadata, string internal, dll.). Area pertama dibagi menjadi tiga subarea lagi: Eden dan ruang penyelamat 1 dan 2. Eden menyimpan semua objek yang baru dibuat. Dua zona sisanya menyimpan benda-benda yang selamat dari pengumpulan sampah terakhir. Pengumpul sampah mengolah seluruh area (area benda muda) sebagai berikut. Selama pengumpulan sampah berikutnya, dia menemukan benda hidup di area Eden dan menyalinnya ke area kedua yang selamat. Setelah itu, ia juga mencari benda-benda hidup di area pertama dan menyalinnya ke area kedua yang selamat, atau, jika sudah cukup “tua”, ke area generasi lama. Setelah itu, dia membersihkan area Eden dan area pertama yang selamat. Selanjutnya, ia menganggap wilayah penyintas kedua adalah yang pertama. Dan itu saja, pengumpulan sampah di area ini berakhir.
Для второй области сборка мусора идёт несколько по-другому. Там есть одна большая область, она ни на что не делится, но сборщик мусора все живые an objectы в ней во время своей работы перемещает в начало области. Соответственно, вторая часть области будет состоять только из пустого пространства и мёртвых an objectов. После этого сборщик мусора завершает свою работу.
-
Перед уничтожение an object сборщиком мусора. Также можно вручную запустить вызовы этого метода у всех недостижимых an objectов, для этого надо вызвать метод
System.runFinalization()
orRuntime.getRuntime().runFinalization()
. -
Это исключение будет проигнорировано, и произойдёт выход из метода.
-
SoftReference
переводится How "мягкая link". Эта link на an object, но более слабая, чем обычная link (StrongReference). Объекты, на которые сущесвуют только мягкие ссылки, называются мягcodeостижимыми. Такие an objectы не уничтожаются в обычном случае. Но если у JVM закочиналась память, то сборщик мусоры удаляет все такие an objectы. -
WeakReference
— это так называемая слабая link на an object. Она ещё слабее Soft-ссылки. Все an objectы, на которые существуют только слабые ссылки, будут удалены при ближайщей сборке мусора. -
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 уже уничтожен). -
WeakHashMap
— этоHashMap
, у которого ключами являются слабые ссылки. Поэтому, если во время ближайшей сборки мусора будет обнаружено, что на an object существует только link вWeakHashMap
, то изWeakHashMap
будет удалена вся пара "ключ-meaning", связанная с этим an objectом.В связи с этим данная коллекция может быть использована для хранения Howой-то дополнительной, не очень важной информации об an objectе. Также её удобно использоваться для хранения Howой-то временной информации (которая нужная только в рамках данной операции).
-
Эта очередь используется для отслеживания того, что an object больше не нужен. Может быть использовано для закрытия ресурсов, открытых данным an objectом (например, удаление созданных файлов).
-
Seorang logger diperlukan untuk menyimpan informasi tentang perilaku program, serta beberapa statusnya. Dapat digunakan untuk debugging dan mengidentifikasi kesalahan dan kegagalan program. Logger juga memungkinkan pengembang menerima umpan balik dari programnya saat program sedang berjalan. Selain itu, jika terjadi kegagalan kritis, logger dapat dengan cepat memberi tahu orang yang tepat (misalnya, pengembang, klien, manajer proyek, dukungan teknis, dll.) tentang kegagalan ini.
-
Saat menyiapkan logging, Anda dapat menentukan hal-hal berikut:
- tempat di mana informasi akan ditulis (file, konsol, database, jaringan, dll.)
- pesan tingkat apa yang akan direkam
- jenis entri log
- untuk file, Anda dapat menentukan: jalur ke file dan direktori, ukuran file, jumlah file
- tentukan untuk setiap paket individu tingkat pesannya sendiri yang akan ditulis ke log
GO TO FULL VERSION