String中的intern( )方法并不是返回当前字符串的地址,而且返回字符串常量池的地址,也就是第一次创建该字符串的时候,它对应的地址
因此这个方法就可以用来比较字符串是否相等,因为只要值相等,返回的结果就是该字符串在字符串常量池中的地址
请看下面代码:
String cc = new String("计算机软件").intern();
String str1 = new StringBuilder("计算机").append("软件").toString();
System.out.println(cc==str1);
正常情况下应该是false
此时使用intern方法:
String cc = new String("计算机软件").intern();
String str1 = new StringBuilder("计算机").append("软件").toString();
System.out.println(cc==str1.intern);
这样的话,就是相等的,他返回的是首次创建该值的地址