概述
String::intern()
是一个Native方法,用于返回该对象在常量池中的引用。
1 | public native String intern(); |
作用:如果字符串常量池中已经包含一个等于该String对象的字符串,则返回代表池中这个字符串的String对象的引用;否则,会将此String对象包含的字符串添加到常量池中,并且返回此String对象的引用。
案例
- 示例1:
1 | /** |
- 示例2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18public static void main(String[] args) {
/*
双等号"=="比较的是地址;equals()比较的是内容。
*/
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2); // true
System.out.println(s1.equals(s2)); // true
String s3 = new String("abc");
System.out.println(s1 == s3); // false
System.out.println(s1.equals(s3)); // true
System.out.println(s1 == s3.intern()); // true
String s4 = new String("abc");
System.out.println(s3 == s4); // false
System.out.println(s3.intern() == s4.intern()); // true
}