请问String s1="imooc";
与String s2=new String("imooc");有什么区别?
汗 上面说的有点问题 回复不能删除
String s1 ="imooc"; 是讲s1指向堆内存中的字符串常量"imooc";
而String s2=new String("imooc") 是在堆内存中开辟一个对象,对象中有一个变量记录的字符串是"imooc",s2指向这个对象
可以这么理解上面一个是将s1指向堆内存中的"imooc"变量,如果堆内存中已经有这个字符串了,s1就会直接指向这个字符串,没有则会新建一个
下面这行通过new关键字 在堆内存中新开辟一个空间,空间中有个字符串为"imooc"
每当你new 一次,堆内存中就会开辟一个新空间,