天天看點

空字元串(“”)和null和空格字元串(" ")的差別

1、類型

null表示的是一個對象的值,而并不是一個字元串。

例如聲明一個對象的引用,String a = null ;

""表示的是一個空字元串,也就是說它的長度為0,但它是一個字元串。

例如聲明一個字元串String str = “” ;

2、記憶體配置設定

String str = null ; 表示聲明一個字元串對象的引用,但指向為null,也就是說還沒有指向任何的記憶體空間;

String str = “”; 表示聲明一個字元串類型的引用,其值為""空字元串,這個str引用指向的是空字元串的記憶體空間;

“” :配置設定了記憶體 ,配置設定了一個空間

null :未配置設定記憶體

" " :配置設定了記憶體,配置設定了一個空間

string str1 = "";    //空字元串      str1.length() 等于 0
 string str2 = null; //NULL
 string str3 = " ";   //空格串          str2.length() 等于 1
           

在java中變量和引用變量是存在棧中(stack),而對象(new産生的)都是存放在堆中(heap):