Selain apa yang telah dikatakan, String literal [yaitu, String suka "abcd"
tapi tidak suka new String("abcd")
] di Java disimpan - ini berarti bahwa setiap kali Anda merujuk ke "abcd", Anda mendapatkan referensi ke satu String
instance, bukan yang baru setiap kali. Jadi, Anda akan memiliki:
String a = "abcd";
String b = "abcd";
a == b; //True
tetapi jika Anda punya
String a = new String("abcd");
String b = new String("abcd");
maka mungkin untuk memilikinya
a == b; // False
(dan jika ada yang perlu diingatkan, selalu gunakan .equals()
untuk membandingkan String; ==
tes untuk persamaan fisik).
Literal String Interning bagus karena sering digunakan lebih dari sekali. Misalnya, perhatikan kode (dibuat-buat):
for (int i = 0; i < 10; i++) {
System.out.println("Next iteration");
}
Jika kita tidak memiliki string internal, "Iterasi berikutnya" perlu dibuat 10 kali, sedangkan sekarang hanya akan dibuat sekali.