Ⅰ java空字元串與null的區別和判斷字元串是否為空的方法
一、Java空字元串與null的區別:
1、類型
null表示的是一個對象的值,而並不是一個字元專串。例屬如聲明一個對象的引用,String a = null ;
""表示的是一個空字元串,也就是說它的長度為0。例如聲明一個字元串String str = "" ;
2、內存分配
String str = null ; 表示聲明一個字元串對象的引用,但指向為null,也就是說還沒有指向任何的內存空間;
String str = ""; 表示聲明一個字元串類型的引用,其值為""空字元串,這個str引用指向的是空字元串的內存空間;
在java中變數和引用變數是存在棧中(stack),而對象(new產生的)都是存放在堆中(heap):
就如下:
String str = new String("abc") ;
ps:=左邊的是存放在棧中(stack),=右邊是存放在堆中(heap)。
二、判斷字元串是否為空的方法
String str = null;
if(str.equals("") || str= == null){//會拋出異常
System.out.println("成功");
}
Ⅱ Java空字元串與null的區別和判斷字元串是否為空的方法
以下是 Java 判斷字元串是否為空的三種方法.
方法一: 最多人使用的一個方法, 直觀, 方便, 但效率很低.
1:if(s == null || s.equals(""));
方法二: 比較字元串長度, 效率高, 是我知道的最好一個方法.
2:if(s == null || s.length() <= 0);
方法三: Java SE 6.0 才開始提供的方法, 效率和方法二幾乎相等, 但出於兼容性考慮, 推薦使用方法
3:if(s == null || s.isEmpty());
Ⅲ java 空字元串與null區別
做成員變數(欄位/屬性/類變數)時,如果只寫String str;那麼是默認賦值為null的。
做局部變數(方法里的變數)時,如果只寫String str;是不會默認賦值null的,這里僅聲明了一個str變數,在棧內存中有定義,但沒有任何值,null其實也是一種值。此時任何調用str的操作,編譯時就均會報錯,是error,不是異常。null的話,你屏幕輸出(toString方法)的結果為字元串null,但其它調用str的操作,編譯可通過,運行時會空指針異常,此時是異常。
String str = ""; // 這個跟"abc"、"中國",本質上這都一樣,只是空串,長度為0罷了
""是空字元串,但是也是字元串,沒有什麼東西。
而null是空的意思,什麼都沒有,沒有地址。
Ⅳ 你好,Java的空字元串和null有什麼區別
一般情況下 . java中的null就是指的空 . 但是稍微注意的是 空字元串"" 和null是有區別的 "" 代表有字元串, 但是字元串內容為空, 長度為0 null表示對象為空 如果用為null的對象去調用方法, 就會出現空指針異常 所以 在字元串進行內容比較時
Ⅳ null和空字元有區別嗎
null和空字元的區別:
1、NULL:代表聲明了一個空對象,不是一個字元串,可以賦給任何對象。
空字元:代表聲明了一個對象實例,這個對象實例的值是一個長度為0的空字元串。
2、String s=null; 只是定義了一個句柄,即你有了個引用,但是這個引用未指向任何內存空間。
String s=」「; 這個引用已經指向了一塊是空字元串的內存空間,是一個實際的東東了,所以可以對它操作。
String s=」a」和String s=new String(「a」);是有本質上的區別的 :
(1) 前者是在字元串池裡寫入一個字元』a』,然後用s指向它; 後者是在堆上創建一個內容為」a」的字元串對象。
(2) String str=」aaa」; //於棧上分配內存 ;String str=new String(「aaa」); //於堆上分配內存