什么时候可以在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

以上是 什么时候可以在Java中使用String类的intern()方法? 的全部内容, 来源链接: utcz.com/z/331352.html

回到顶部