null是一个空引用,它没有分配空间。
“”是一个空字符串,它分配了内存空间,但是没有内容。
“ ”是空格,占位符
如果s=null,则一般可以用实例化给它分配空间,也可以赋予某个引用;
如果s=“”,表示s是一个字符串,只是没有内容,可以把它视为String对象对待。
如果s =" "说明s中包含一个空格
String str ="";
System.out.println(str.length());
System.out.println(str.hashCode());
System.out.println(str==null);
输出
0
0
false
java中判断字符串是否没有内容:
s==null||"".equals(s)
顺便补充一个与此相关的题目:
1. 如果int x=20, y=5,则语句System.out.println(x+y +""+(x+y)+y); 的输出结果是(D)
A. 2530 B. 55 C. 2052055 D. 25255
因为x和y是int型的,所以x+y就=20+5=25
x+y +""+(x+y)+y
就等价于25+“”+(25)+5
“”是空字符,不是空格。
因为中间加了个空字符,所以25,25和5就不能再算加法了,要当成字符串拼接