Java 中的字符串驻留


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

当调用“intern”函数时 -

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

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

  • 如果对于两个字符串“a”和“b”,a.intern() == b.intern() 为真,当且仅当 a.equals(b) 返回真。

让我们看一个例子 -

示例

 实时演示

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("Checking equality of object 2 and 3 :");
      System.out.println(s2 == s3);
      String s4 = "Its a sample";
      System.out.println("Checking equality of object 3 and 4 :");
      System.out.println(s3 == s4);
   }
}

输出

Checking equality of object 2 and 3 :
true
Checking equality of object 3 and 4 :
false

名为 Demo 的类包含 main 函数。这里定义了三个字符串对象的实例,其中第二个字符串是第一个字符串与不同值的连接。第三个字符串是对第二个字符串上的“intern”的函数调用。这些字符串使用“==”运算符进行比较,结果显示在控制台上。

更新于: 2020-07-04

239 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告