String类型的变量赋值的两种方式: String str=new String("abc");第一行代码
String str1=“abc”;第二行代码
java中文字都被看做是一个String对象,而且把文字都会放到String池中即栈中。栈中的数据是共享的。
第一行代码:先查看在栈中是否存在“abc”这样的常量,如果没有,则会创建一个String对象“abc”;然后再执行new String()时,java会创建一个对象,所以第一种方式一共建立了2个对象。
第二行代码:查看栈中是否存在常量“abc”,由于第一步已经建立了,所以是存在的,然后直接把引用付给类型变量str1就ok,所以第二行代码没有创建对象。