代码清单2-7 String.intern()返回引用的测试
public class RuntimeConstantPoolOOM{public static void main(String[]args){public static void main(String[]args){String str1=new StringBuilder("计算机").append("软件").toString();System.out.println(str1.intern()==str1);String str2=new StringBuilder("ja").append("va").toString();System.out.println(str2.intern()==str2);}}}书中说因为“java”这个字符串在执行StringBuilder.toString()之前已经出现过字符串常量池中已经有它的引用了,不符合“首次出现”的原则,而“计算机软件”这个字符串则是首次出现的,因此返回true
为什么java是已经出现,计算机软件是首次出现。不太明白 |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|