String b = new String("java").intern();
System.out.println(a.equals(b));
System.out.println(a == b);
輸出結果:
true
true
equals比較的對象的值,==比較的對象的地址,intern()方法會根據equls方法判斷此字符串是否在常量池中,
如果沒有就將此字符串加入常量池中,並返回地址,如果有就直接返回常量地址,所以a==b的值爲true
System.out.println(a == b);
輸出結果:
true
true
equals比較的對象的值,==比較的對象的地址,intern()方法會根據equls方法判斷此字符串是否在常量池中,
如果沒有就將此字符串加入常量池中,並返回地址,如果有就直接返回常量地址,所以a==b的值爲true