Rumah >Java >javaTutorial >Kolam Rentetan Java: Timbunan atau Tindanan—Di Mana Objek Rentetan Berada?
Kolam Rentetan Java: Peruntukan Tindanan lwn. Heap Storage
Pertimbangkan coretan kod:
String first = "abc"; String second = new String("abc");
Membuat segera objek String baharu dengan kata kunci baharu mencipta objek String yang berbeza pada timbunan. Tidak seperti primitif lain, objek String tidak boleh diubah, bermakna ia tidak boleh diubah suai selepas pemulaan.
Walau bagaimanapun, Java mengekalkan kolam String dalam timbunan, yang menyimpan sejumlah terhad String yang biasa digunakan. Apabila Rentetan literal (disertakan dalam petikan berganda) ditakrifkan, pengkompil menyemak kumpulan String untuk String sepadan sedia ada. Jika ditemui, String literal akan merujuk String sedia ada dalam kolam, memastikan kecekapan memori.
Dalam contoh ini, memandangkan "abc" ialah String literal, ia akan diletakkan dalam kolam String.
Sekarang, mari kita pertimbangkan objek String baharu yang dibuat dengan String("abc") baharu:
Oleh itu, kod kami menghasilkan satu String dalam kolam String ("abc"") dan satu String yang berbeza pada timbunan (yang dibuat dengan String("abc") baharu).
Atas ialah kandungan terperinci Kolam Rentetan Java: Timbunan atau Tindanan—Di Mana Objek Rentetan Berada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!