1. 程式人生 > >字串為null和字串為" "有什麼區別

字串為null和字串為" "有什麼區別

做成員變數(欄位/屬性/類變數)時,如果只寫String str;那麼是預設賦值為null的。
做區域性變數(方法裡的變數)時,如果只寫String str;是不會預設賦值null的,這裡僅聲明瞭一個str變數,在棧記憶體中有定義,但沒有任何值,null其實也是一種值。此時任何呼叫str的操作,編譯時就均會報錯,是error,不是異常。null的話,你螢幕輸出(toString方法)的結果為字串null,但其它呼叫str的操作,編譯可通過,執行時會空指標異常,此時是異常。
String str = " "; // 這個跟"abc"、"中國",本質上這都一樣,只是空串,長度為0罷了
" "是空字串,但是也是字串,沒有什麼東西。


而null是空的意思,什麼都沒有,沒有地址。

  1. String str1 = null;  
  2. String str2 = "test";  
  3. str1 = str1 + str2;  
  4. System.out.println(str1);  

輸出結果:nulltest        這裡它把null解析為字串了。

原因:我們在進行字元連線操作時會預設去呼叫String的valueOf()方法。

public static String valueOf(Object obj)

返回 Object 引數的字串表示形式。

引數: obj - 一個 Object

返回: 

如果引數為

null,則字串等於 "null";否則,返回 obj.toString() 的值。

TextUtils.isEmpty(str)和str.isEmpty()

public static boolean isEmpty(CharSequence str)

{ if (str == null || str.length() == 0) return true; else return false; } //CharSequence是一個介面,String實現了這個介面 

//我們可以用TextUtils.isEmpty(str)來代替if(text == null || text.length() == 0)

str.isEmpty();則相當於只判斷了str.length == 0。而當空(null)時 str.isEmpty() 會空指標異常。

相關推薦

字串null字串" "什麼區別

做成員變數(欄位/屬性/類變數)時,如果只寫String str;那麼是預設賦值為null的。做區域性變數(方法裡的變數)時,如果只寫String str;是不會預設賦值null的,這裡僅聲明瞭一個str變數,在棧記憶體中有定義,但沒有任何值,null其實也是一種值。此時任何呼叫str的操作,編譯時

字串null字串" "什麼區別

做成員變數(欄位/屬性/類變數)時,如果只寫String str;那麼是預設賦值為null的。做區域性變數(方法裡的變數)時,如果只寫String str;是不會預設賦值null的,這裡僅聲明瞭一個str變數,在棧記憶體中有定義,但沒有任何值,null其實也是一種值。此時任何

request.getParameter("name")獲取引數null""空字串區別

1.獲取到的值為" "空字串 當url裡有name屬性,但是沒有值的時候後臺用request.getParameter("name")獲取的是空字串"" 2.獲取到的值為null 當url裡沒有

MySql表中欄位Null 空('') 什麼區別, 分別什麼影響?

資料準備 insert into user VALUES (6,NULL,1,0,1,NULL); insert into user VALUES (7,'',10,0,0,''); 然後我們編寫了一個簡單的小程式查詢這兩條記錄 public User

Mysql varchar 把默認值設置null空的區別

指向 變量 因此 區別 char 轉換 強行 含義 提高 ‘\0‘,這個表示空,需要消耗存儲空間的。NULL,則表示連這個\0都沒有。 NULL,你可以近似理解為變量未賦值(定義了變量,但是未使用,變量不指向具體存儲空間,因此,理論上不消耗存儲空間),同時,它理論上不可

HTTP ------ connection close keep-alive 的區別

圖片 tcp連接 三次握手 字段 tcp 其它 時代 http 網頁 keep-alive和close這個要從TCP握手講起HTTP請求是基於TCP連接的,TCP的請求會包含(三次握手,中間請求,四次揮手)在HTTP/1.0時代,一個HTTP請求就要三次握手和四次揮手,當一

在遊戲中何音效混音的區別

記得看過一本書,書上說聲音是電影的50%.電影的視覺效果搭配上恰當的聲音就能夠營造出一部精彩的電影,醞釀最純的情緒,使故事飽滿而又深刻,那更何況如今火熱的遊戲。自然也少不了音效的功勞,可以說其發展前景不容小噓。         據統計資料

關於引用變數進行引用傳遞時傳遞變數空的區別

/** * */ /** * @author jueying: * @version 建立時間:2018-10-27 下午02:02:27 * 類說明 */ /** * @author jueying * */ class A { public

background-size值cover100%的區別

background-size:100% 100%;---按容器比例撐滿,圖片變形; background-size:cover;---把背景圖片放大到適合元素容器的尺寸,圖片比例不變。 IE8及以下版本用濾鏡來相容background-size如下: fi

json序列化時,不序列化值null""的欄位

<!-- jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId>

使用字串指標變數字元陣列的區別

4、對使用字元指標變數和字元陣列兩種方法表示字串的討論雖然用字元陣列和字元指標變數都能實現字串的儲存和運算,但它們二者之間是有區別的,不應混為一談。 4.1、字元陣列由若干個元素組成,每個元素放一個字元;而字元指標變數中存放的是地址(字串/字元陣列的首地址),絕不是將字串放到字元指標變數中(是字串首地址) 4

mysql中查詢欄位null或者不null的sql語句怎麼寫?

在mysql中,查詢某欄位為空時,切記不可用 = null,而是 is null,不為空則是 is not null select * from table where column is null; select * from table where column is not null; se

學習:JS中null undefined 的主要區別

注意在 JScript 中 null 和 undefined 的主要區別是 null 的操作象數字 0,而 undefined 的操作象特殊值NaN (不是一個數字)。對 null 值和 undefined 值作比較總是相等的。 var a; var b=null; var

判斷js物件null或者屬性

利用for in對物件進行遍歷,如果可以遍歷則不為空 1、包括原型鏈的屬性 function isEmpty(obj){       for(var key  in obj){          

Linux基礎教程之/dev/null/dev/zero的區別及其用法

在Linux作業系統中/dev/null和/dev/zero是兩個相似卻又很特殊的檔案,特別是在shell指令碼開發和系統運維過程中會經常用這兩個檔案,因此作為Linux系統工程師,你必須瞭解這兩個檔案的區別和用法。 一、/dev/null的用法: 我們可以把/dev/null檔案看作”黑洞”,它非

mysql儲存過程判斷不空,查詢結果賦值變數

直接看例子,判斷為空是is null delimiter // create procedure proc__pre_activity_scan() begin    declare p_tid int(10);    set @p_tid=(select tid fro

MySQL 中NULL空值的區別

1:在進行count()統計某列的記錄數的時候,如果採用的NULL值,會別系統自動忽略掉,但是空值是會進行統計到其中的。 2: 判斷NULL 用IS NULL 或者 is not null,SQL 語句函式中可以使用ifnull()函式來進行處理,判斷空字元用=''或者 &

mysql中查詢欄位null或者不null

mysql中查詢欄位為null或者不為null   在mysql中,查詢某欄位為空時,切記不可用 = null, 而是 is null,不為空則是 is not null   www.2cto.com   select * from table where column is null;   select

字串資料型別字串方法:

字串是什麼   在python中,字串是一串以' '或" "括起來的資料結構。注意,字串是不可變資料型別。   在python語法中," "表示的是該字串的範圍。兩個"或'中間的就是字串。   但是,如果想要在字串中表示原始的引號,該如何表達呢?   這裡就需要用到:轉義   轉義:

Swift base64轉成圖片以及字串,以及圖片字串轉成 base64的方法

圖片轉成 base64: let image : UIImage =UIImage(named:"test.png")! let imageData = UIImagePNGRepresentation(image) let base64String = image