String str=“abc“是直接在方法区常量池创建空间并产生一个空间地址并直接赋值给在栈内存中的str变量 而String str = new String("abc")先是在方法区常量池创建空间然后将空间地址传给在堆内存中的new String然后new String将它在堆内存的地址值赋值给在栈内存中的变量Str
简单点说String str=“abc“是在栈内存中的str直接指向常量池中的"abc"所在位置地址;而String str = new String("abc")先是指向堆内存中的new String 然后new 又指向常量池中的"abc"所在位置地址. |