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?
展开
 我来答
逝水流炎9e3de
2015-09-05 · TA获得超过246个赞
知道小有建树答主
回答量:145
采纳率:100%
帮助的人:91.7万
展开全部

这个要从源码的角度来看,从下面的代码我们及可以发现,当str==null为true时会被赋值为字符串“null”。不要问我为什么,我也不知道

追问
额,我看到这个源码了,明白了。多谢
另外请问下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());你应该就全明白了。
后纲捷4
2015-09-05
知道答主
回答量:18
采纳率:0%
帮助的人:9.3万
展开全部
我帮你解释一下你执行的过程
String str=null;
String str1="abc";
System.out.println((String)str+str1);
相加的时候会发生自动类型转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式