Java 中的字符串驻留
javaobject oriented programmingprogramming
字符串驻留是一个存储每个不同字符串值的单个副本的过程。除此之外,字符串也不能更改。这样,字符串可以包含相同的数据并共享相同的内存。这样,所需的内存将大大减少。
当调用‘intern’函数时−
它检查两个字符串之间的相等性 - 字符串对象是否存在于字符串常量池 (SCP) 中。
如果可用,则通过从池中获取字符串来返回它。否则,将创建一个新的 String 对象并将其添加到池中。还返回对此字符串对象的引用。
如果对于两个字符串"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("检查对象 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’ 函数调用。使用 ‘==’ 运算符比较这些字符串,并将结果显示在控制台上。