public class Test20210118 {
public static void main(String[] args) {
String a ="qazwsxedc";
String b =new String("qazwsxedc").intern();
System.out.println(a==b);
}
}
结果是true
public class Test20210118 {
public static void main(String[] args) {
String a ="qazwsxedc";
String b =new String("qazwsxedc");
System.out.println(a==b);
}
}
结果是false
调用intern方法,就会拿着当前这个字符串里的内容在字符串常量池中找,看当前这个内容是否存在于池中。
如果存在直接返回池中的地址。
如果不存在,则把当前字符串的内容加到常量池中,返回池中的地址。
该语句执行完毕之后,发现并没有引指向这个对象,于是该对象就会被垃圾回收机制给回收掉。
返回的是字符串的引用(地址)常量池的地址。