第一句,生成一个字符串对象,存储在常量池当中,如果String str2="123",那么就会直接把常量池中的对象地址值赋给他
第二种,因为new关键字,只要一出现new肯定就会在堆内存中创建一个新的对象,所以String str2=new String("123"):s2在栈内存中,new String("123")在栈内存中,s2存储的值是对象在堆内存中的首地址,而对象的值是"123"
第一句使用的是常量池中的地址,第二句使用的是堆内存中的地址
java中会生成五块区域.堆,栈,方法区,本地方法区,寄存器,常量池位于方法区当中:lol |