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就不能再算加法了,要當成字符串拼接