String中的intern( )方法

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);

这样的话,就是相等的,他返回的是首次创建该值的地址

你可能感兴趣的:(java基础,java,开发语言)