String s1 = new String("s1") ;
String s2 = new String("s1") ;
上面创建了几个String对象?
答案:3个 ,编译期Constant Pool中创建1个,运行期heap中创建2个.
string str2 = new String("abc")
创建了2个对象,编译期Constant Pool中创建1个,运行期heap中创建一个
pool中只要有相同值的只创建一次。。。。heap中有相同值的,在heap中都开辟内存空间,后面开辟的是指向第一个开辟的引用(即指针)
另外,基本数据类型是存在stack中,对象类型是存在heap中