Menurut String # intern () , intern
metode seharusnya mengembalikan String dari kolam String jika String ditemukan di kolam String, jika tidak objek string baru akan ditambahkan dalam kolam String dan referensi dari String ini dikembalikan.
Jadi saya mencoba ini:
String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();
if ( s1 == s2 ){
System.out.println("s1 and s2 are same"); // 1.
}
if ( s1 == s3 ){
System.out.println("s1 and s3 are same" ); // 2.
}
Saya mengharapkan yang s1 and s3 are same
akan dicetak saat s3 diinternir, dan s1 and s2 are same
tidak akan dicetak. Tetapi hasilnya adalah: kedua garis dicetak. Jadi itu berarti, secara konstan konstanta String diinternir. Tetapi jika demikian, mengapa kita perlu intern
metode ini? Dengan kata lain kapan kita harus menggunakan metode ini?
intern
metode publik. Bukankah seharusnya kita memiliki intern
metode pribadi, sehingga tidak ada yang bisa mengaksesnya. Atau adakah tujuan metode ini?