什么时候可以在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));
}
}输出结果
true false false false true false true true true true true true
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语