Rumah > Java > javaTutorial > Adakah String Literal Pernah Dikumpul Sampah? Meneroka Nuansa String Interning dan Class Unloading.

Adakah String Literal Pernah Dikumpul Sampah? Meneroka Nuansa String Interning dan Class Unloading.

DDD
Lepaskan: 2024-10-31 05:13:30
asal
444 orang telah melayarinya

 Do String Literals Ever Get Garbage Collected? Exploring Nuances of String Interning and Class Unloading.

Pengumpulan Sampah Huruf Rentetan

Soalan:

Tersurat rentetan secara amnya dianggap sebagai terperangkap dan oleh itu tidak terdedah kepada kutipan sampah. Walau bagaimanapun, kekeliruan timbul apabila meneroka nuansa gabungan rentetan, caching kelas rentetan dan pemunggahan kelas. Untuk menjelaskannya, mari kita teliti soalan berikut:

  1. Adakah rentetan yang ditakrifkan sebagai literal masa kompilasi ("java") pernah menjadi sampah yang dikumpul?
  2. Bagaimanakah kaedah pelatih mempengaruhi tingkah laku pengumpulan sampah?
  3. Adakah benar bahawa literal hanya sampah yang dikumpul apabila kelas String dipunggah?

Jawapan:

1. Pengumpulan Sampah Literal Masa Kompilasi:

Tersurat rentetan, ditakrifkan pada masa penyusunan, hidup selagi pemuat kelas yang memuatkan kod yang mengandungi literal tersebut. Selagi kelas yang menggunakan literal masih dimuatkan, objek String yang mewakilinya tidak akan dikumpul sampah. Walau bagaimanapun, jika pemuat kelas dimusnahkan, literal mungkin tertakluk kepada kutipan sampah.

2. Kaedah pelatih dan Pengumpulan Sampah:

Memanggil kaedah pelatih pada rentetan mengembalikan objek yang sama yang mewakili rentetan literal. Oleh yang demikian, rentetan yang diinternalkan mempunyai jangka hayat yang sama seperti rentetan itu sendiri. Walau bagaimanapun, rentetan yang dibuat menggunakan baharu yang tidak sama dengan literal rentetan boleh menjadi sampah yang dikumpul jika ia tidak dapat dicapai.

3. Pemunggahan Kelas dan Huruf Rentetan:

Adalah tidak betul untuk mendakwa bahawa literal hanyalah sampah yang dikumpul apabila kelas Rentetan dipunggah. Java tidak memunggah kelas terasnya, termasuk kelas String. Literal rentetan dikekalkan selagi kod yang merujuknya kekal aktif.

Atas ialah kandungan terperinci Adakah String Literal Pernah Dikumpul Sampah? Meneroka Nuansa String Interning dan Class Unloading.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan