String intern
时间: 2023-10-17 22:25:26 浏览: 99
String intern() 方法是用来返回字符串对象的规范化表示形式。即返回字符串对象在常量池中的引用(如果该字符串已经存在于常量池中,则返回常量池中的引用;否则将该字符串添加到常量池中并返回其引用)。
使用 intern() 方法可以节省内存,因为它可以确保同一个内容的字符串只有一个对象存在于常量池中。这对于比较字符串内容是否相等非常有用,可以直接使用 "==" 操作符进行比较,而不需要使用 equals() 方法。
例如,下面的代码演示了 intern() 方法的使用:
```
String str1 = new String("hello");
String str2 = str1.intern();
System.out.println(str1 == str2); // 输出结果为:false,因为str1和str2是两个不同的对象
System.out.println(str1.equals(str2)); // 输出结果为:true,因为它们的内容是相等的
String str3 = "hello";
String str4 = str3.intern();
System.out.println(str3 == str4); // 输出结果为:true,因为str3和str4都是常量池中的同一个对象
System.out.println(str3.equals(str4)); // 输出结果为:true,因为它们的内容是相等的
```
注意,由于 intern() 方法是对字符串对象进行规范化处理,所以对于较长的字符串或者频繁使用 intern() 方法的代码,可能会导致性能问题。因此,建议在使用 intern() 方法时要谨慎使用,根据具体情况进行性能测试和评估。
阅读全文