Rumah >Java >javaTutorial >Bagaimanakah Kolam Rentetan Java Mengendalikan Rentetan yang Dicipta dengan Kata Kunci `baru`?

Bagaimanakah Kolam Rentetan Java Mengendalikan Rentetan yang Dicipta dengan Kata Kunci `baru`?

Patricia Arquette
Patricia Arquetteasal
2024-12-16 14:00:23364semak imbas

How Does Java's String Pool Handle Strings Created with the `new` Keyword?

Penerokaan Kolam Rentetan Java

Pertimbangkan kod berikut:

String first = "abc";
String second = new String("abc");

Soalan 1: Kolam Rentetan Penggunaan dengan Kata Kunci Baharu

Apabila Java memulakan kedua dengan pembina String() baharu, adakah ia mencipta contoh String abc yang baharu sepenuhnya?

Jawapan: Ya, menggunakan baharu memastikan penciptaan objek String baharu.

Soalan 2: Heap and String Pool Storage

Adakah tika String yang baru dibuat (daripada kata kunci baharu) disimpan dalam timbunan biasa atau kolam String?

Jawapan: Semua objek, termasuk objek String, berada pada timbunan. Kolam String bukanlah kawasan ingatan yang berasingan; ia adalah mekanisme seperti cache.

Soalan 3: Kiraan Kolam Rentetan

Berapa banyak kejadian Rentetan "abc" akan berakhir dalam kolam Rentetan?

Jawapan: Secara amnya, apabila anda mencipta literal String yang tidak boleh diubah, Java secara automatik meletakkannya dalam kolam String. Walau bagaimanapun, dalam senario khusus ini:

  • pertama akan diberikan rujukan kepada String abc daripada kumpulan String.
  • kedua, dibuat dengan String("abc") baharu, akan cipta objek String yang berasingan, yang tidak akan disimpan dalam kolam String.

Oleh itu, dalam kes ini, hanya satu contoh Rentetan "abc" akan wujud dalam kolam Rentetan.

Atas ialah kandungan terperinci Bagaimanakah Kolam Rentetan Java Mengendalikan Rentetan yang Dicipta dengan Kata Kunci `baru`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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