Java intern()
[Java String]Java String
intern()
intern()
intern() s t s.equals(t) true s.intern() == t.intern() true
String s1 = new String("Hello");
String s2 = "Hello";
String s3 = s1.intern();
System.out.println(s1 == s2); // false
System.out.println(s2 == s3); // true
public String intern()
intern() String Pool
Java
JDK 6 intern() OutOfMemoryError
JDK 7
intern()
public class RunoobTest {
public static void main(String args[]) {
// str1 "Runoob"String Pool
String str1 = "Runoob";
// str2 new Heap
String str2 = new String("Runoob");
// str3 str2 intern()
// intern() "Runoob"
String str3 = str2.intern();
// str1 str2
// str1 "Runoob"str2
// false
System.out.println(str1 == str2); // false
// str1 str3
// str3 str2 intern() "Runoob"
// str1 "Runoob" true
System.out.println(str1 == str3); // true
}
}
public static void main(String args[]) {
// str1 "Runoob"String Pool
String str1 = "Runoob";
// str2 new Heap
String str2 = new String("Runoob");
// str3 str2 intern()
// intern() "Runoob"
String str3 = str2.intern();
// str1 str2
// str1 "Runoob"str2
// false
System.out.println(str1 == str2); // false
// str1 str3
// str3 str2 intern() "Runoob"
// str1 "Runoob" true
System.out.println(str1 == str3); // true
}
}
String str1 = "Runoob";
-
"Runoob"String Pool
String str2 = new String("Runoob");
-
newHeapstr2
String str3 = str2.intern();
-
intern()"Runoob" -
str1str3str1
System.out.println(str1 == str2);
-
str1str2==false
System.out.println(str1 == str3);
-
str3intern()str1true
false true
[Java String]Java String
mol***[email protected]
internab.intern()abab
String str1 = "a"; String str2 = "b"; String str3 = "ab"; String str4 = str1 + str2; String str5 = new String("ab"); System.out.println(str5.equals(str3)); System.out.println(str5 == str3); System.out.println(str5.intern() == str3); System.out.println(str5.intern() == str4);String a = new String("ab"); String b = new String("ab"); String c = "ab"; String d = "a" + "b"; String e = "b"; String f = "a" + e; System.out.println(b.intern() == a); System.out.println(b.intern() == c); System.out.println(b.intern() == d); System.out.println(b.intern() == f); System.out.println(b.intern() == a.intern());b.intern() == ab.intern() == cnew b.intern() == db.intern() == ffe
Javaequal====
String a = "abc"; String b = "abc"; String c = "a" + "b" + "c"; String d = "a" + "bc"; String e = "ab" + "c"; System.out.println(a == b); System.out.println(a == c); System.out.println(a == d); System.out.println(a == e); System.out.println(c == d); System.out.println(c == e);mol***[email protected]