栈 用来运行main主方法的,有对象就造对象
但是造的对象只是一个空壳子,里面是地址值指向别处,比如
s1 栈造出来了,s1 = "abc";
这是把常量"abc"赋值给s1 常量储存在方法区的字符串常量池里面,所以s1在栈内存中 实际里面是一个指向字符串常量池"abc"的地址值
String s2 = new String("abc");
s2栈造出来了
然后new String 由于是new 所以马上在堆内存开辟一开空间储存,
然后里面的值是"abc",所以,堆内存里面也是一个地址值,指向常量池.
所以之后是s2---指向堆---堆在指向常量池 |