什么时候可以在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 迎新祝福语简短20字
16 新人结婚简短祝福语大全
17 给导师送花祝福语简短
18 新年留言老师祝福语简短