DESKTOP-CAEV9LP_20200828-湛良通
问题
public static void main(String[] args) {
char[] data = { 'h', 'e', 'l', 'l', 'o' };
String x = new String(data);
System.out.println(System.identityHashCode(x));
String t = x.intern();
System.out.println(System.identityHashCode(t));
String s = "hello";
System.out.println(System.identityHashCode(s));
System.out.println(s == x); // true
System.out.println(t == s); // true
System.out.println(x == t); // true
}
返回结果
604107971
604107971
604107971
true
true
true
那么这时的 引用变量 t 与 s 都是指向堆中的String实例对吧
那么字符串池中存放的是 指向堆中的String实例的地址
字符串池中就没有 新的String实例
这样理解对不对
吐槽
好快一周就又过去了,转眼就又要考试了。
点赞