java中String的null和""

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中String的null和""相关的知识,希望对你有一定的参考价值。

如下代码,我将String s = null的时候,输出的结果是false;而我将String s = "";的时候,返回的又是true;这是怎么回事啊!
请详细解释!

String s = "";
String t = "ab";

s = s + t;

if(s.equals(t))

System.out.println("true");

else

System.out.println("false");

在使用"+"操作符时,如果有一个操作数是字符串,其他操作数会被转换成字符串
s=null时s+t结果为“nullab”
s=""时s+t结果为“ab”
而equals方法比较的是两个对象的内容是否相同,所以会有上面的结果

注:将s和t输出就知道了
参考技术A String s 语句是创建一个对象。

如果s=null表示还没创建出对象,就是还没开辟空间。所以s=s+t还是空。
如果s = ""表示创建出了对象,但是这个对象内容为""(也就是空字符串)。
参考技术B 首先NULL != “”,null表示没有可用的数据,而“”是真实存在的数据,所有出现上述结果也是理所当然的了 参考技术C null 是未知内容的意思,null加上任何东西都还是null

""是空字符串,加上"ab"当然是"ab"了
参考技术D 唉, 各位, 基本功呀
String s = null;
String t = "ab";
s = s + t;

这时:s = "nullab";

String s = "";
String t = "ab";
s = s + t;

这时:s = "ab";本回答被提问者采纳

以上是关于java中String的null和""的主要内容,如果未能解决你的问题,请参考以下文章

JSONObject optString或者getString方法取null问题

Java中null和‘’区别

java中NULL与" "的区别

java String str=null

Java数组中string的用法

java中String问题,String a=new String(""); 和String a=new String();有区别吗