我對實習生功能有點困惑。我有以下代碼:Java實習生功能
public class InternTest{
public static void main(String args[]){
String s1 = "ANEK";
String s2 = new String("ANEK");
String s3 = s2.intern();
System.out.println(s3 == s1); // True
String s11 = "ANEK".concat("SINGH");
String s22 = s11.intern();
System.out.println(s11 == s22); // True
String s4 = "nat".concat("ive");
String s5 = s4.intern();
System.out.println(s4 == s5); // True
String s33 = "ma".concat("in");
String s44 = s33.intern();
System.out.println(s33 == s44); // false
String s331 = "ja".concat("va");
String s441 = s331.intern();
System.out.println(s331 == s441); // false
}
}
我的問題是關於輸出。在第三種情況下,它給了我的真實性,但在第四和第五種情況下,它給了我虛假。我能否知道這些輸出背後的原因是什麼?我不能得出結論,它爲java保留字或關鍵詞提供了假,因爲當我嘗試使用en時,它給出了真實性,但是通過te它給了我假。任何人都可以告訴我爲什麼?
@YCF_L實習生功能給我的規範表示字符串.. –
爲什麼它是重複的?這不是關於字符串比較的問題,而是關於'intern'的使用 – ByeBye
字符串實習是一種僅存儲每個不同字符串值的一個副本的方法,它必須是不可變的。 在Java中,String類具有公共方法intern(),它返回字符串對象的規範表示形式。 Java的String類私有維護一個字符串池,其中字符串文字被自動實現。而當你比較字符串,你應該使用等於不是== –