java String str=null
Stringstr=null;Stringstr1="abc";System.out.println(str+str1);//为什么输出结果为:nullabc?...
String str=null;
String str1="abc";
System.out.println(str+str1);//为什么输出结果为:nullabc? 展开
String str1="abc";
System.out.println(str+str1);//为什么输出结果为:nullabc? 展开
2个回答
追问
额,我看到这个源码了,明白了。多谢
另外请问下String str=new String();//为什么这里str不等于null呢?
System.out.print(str==null);//结果为false, 不是说引用类型的默认赋值都是null吗
追答
为什么要等于null? str已经被赋值了啊。 new这个语句已经给str在堆栈内分配一块地址。那么它就不为空了。尽管str里面什么都没有。如果你用s1.equals("");就返回true,因为str其实是一个空字符串了。即String str = new String();等同于,String str = new String("");也等同于 String str = "";你可以试一下在String str = null;和String str =new String();这两种情况下分别输出 System.out.println(str.length());你应该就全明白了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询