Я немного запутался в функции intern. У меня есть следующий код:
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 или ключевого слова, потому что, когда я пытался с энтум, он дает истину, но с помощью te это дает мне ложь. Может ли кто-нибудь сказать мне, почему?