Java中的字符串实习

字符串实习是一个过程,其中存储每个不同字符串值的单个副本。除此之外,字符串也不能更改。这样,字符串可以包含相同的数据并共享相同的内存。这样,所需的内存将大大减少。

当'intern'函数被调用时-

  • 它检查两个字符串之间的相等性-字符串对象是否存在于字符串常量池(SCP)中。

  • 如果可用,则通过从池中获取字符串来返回该字符串。否则,将创建一个新的String对象并将其添加到池中。还返回对此String对象的引用。

  • 如果对于两个字符串“ a”和“ b”,则a.intern()== b.intern()为true,前提是a.equals(b)返回true。

让我们看一个例子-

示例

public class Demo{
   public static void main(String[] args){
      String s1 = new String("Its");
      String s2 = s1.concat("sample");
      String s3 = s2.intern();
      System.out.println("检查对象2和3的相等性:");
      System.out.println(s2 == s3);
      String s4 = "Its a sample";
      System.out.println("检查对象3和4的相等性:");
      System.out.println(s3 == s4);
   }
}

输出结果

检查对象2和3的相等性:
true
检查对象3和4的相等性:
false

名为Demo的类包含主要功能。这里定义了String对象的三个实例,其中第二个字符串是具有不同值的第一个字符串的串联。第三个字符串是对第二个字符串的'intern'的函数调用。使用'=='运算符比较这些字符串,结果显示在控制台上。