什么时候可以在Java中使用String类的intern()方法?
该实习生()方法 的String类可以用来处理 字符串的复制问题在Java中。使用intern(),可以节省大量重复字符串实例消耗的内存。如果一个字符串包含与另一个字符串相同的内容,则该字符串是重复的,但是可以被占用不同的存储位置。
我们知道JVM为字符串文字维护了一个单独的堆内存,以提高性能。一旦我们声明了字符串文字,它将进入该池,如果为另一个变量分配了相同的文字值,则将从池中选择该变量,而不是创建新对象并将其存储在heap中。但是,如果使用新构造函数声明字符串,那么即使池中存在文字,也会创建一个新对象。为了避免这种情况并迫使JVM从池中选择文字,我们使用intern()方法。
Java默认情况下会自动实习所有字符串。的实习生()方法可与字符串中使用Ñ EWString()
,以便通过对它们进行比较==操作符。
示例
public class StringInternClassTest {public static void main(String[] args) {
String s1 = "Tutorix";
String s2 = "Tutorix";
String s3 = new String("Tutorix");
final String s4 = s3.intern();
String s5 = "?Tutorix".substring(1);
String s6 = s5.intern();
System.out.println(s1 == s2);
System.out.println(s2 == s3);
System.out.println(s3 == s4);
System.out.println(s1 == s3);
System.out.println(s1 == s4);
System.out.println(s1 == s5);
System.out.println(s1 == s6);
System.out.println(s1.equals(s2));
System.out.println(s2.equals(s3));
System.out.println(s3.equals(s4));
System.out.println(s1.equals(s4));
System.out.println(s1.equals(s3));
}
}
输出结果
truefalse
false
false
true
false
true
true
true
true
true
true
以上是 什么时候可以在Java中使用String类的intern()方法? 的全部内容, 来源链接: utcz.com/z/331352.html