再来会答下楼主的问题,String s = new String(); String s = null; String s ="";
这三者的区别,首先,String s=new String()和String s="";如果是但是比较值得时候是相同的都是空字符串
但是如果是前面已经声明过了一个空字符串,后面再写着两句话给变量赋值,那就出现不同之处了,使用new String()的方式会开辟一块新的内存空间,这是
变量的引用和原先出现的空字符串的引用是不同的。
例如:
String a="";
String b="";
String c=new String();
当用“==”进行比较时,a==b返回true,而a==c则返回false
但是用equals比较abc是相等的
为什么说String s = new String("hello");是建立了两个对象
因为,"hello"本身就是一个对象,存放在String pool里面,然后使用new String(),又会创建一个新的空间,这时就是两个对象咯
|