ตามString # ฝึกงาน () , intern
วิธีการที่ควรจะกลับ String จากสระว่ายน้ำ String ถ้าเชือกที่พบในสระว่ายน้ำ String มิฉะนั้นวัตถุสตริงใหม่จะถูกเพิ่มเข้ามาในสระว่ายน้ำ String และการอ้างอิงของสายนี้จะถูกส่งกลับ
ดังนั้นฉันลองทำสิ่งนี้:
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.
}
ฉันคาดหวังว่าs1 and s3 are same
จะถูกพิมพ์เมื่อ s3 ถูก interned และs1 and s2 are same
จะไม่ถูกพิมพ์ แต่ผลลัพธ์คือ: ทั้งสองบรรทัดถูกพิมพ์ ดังนั้นนั่นหมายความว่าค่าคงที่สตริงเริ่มต้นจะถูกฝึกงาน แต่ถ้าเป็นเช่นนั้นแล้วทำไมเราถึงต้องการintern
วิธีการ? กล่าวอีกนัยหนึ่งเราควรใช้วิธีนี้เมื่อใด?
intern
วิธีเป็นสาธารณะ เราไม่ควรมีintern
วิธีการส่วนตัวเพื่อให้ไม่มีใครสามารถเข้าถึงได้ หรือมีจุดประสงค์ของวิธีนี้หรือไม่?