一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java中關(guān)于 null 的幾種處理方式詳解

Java中關(guān)于 null 的幾種處理方式詳解

2022-02-27 15:15Hello World呀 Java教程

這篇文章主要介紹了Java中關(guān)于 null 的幾種處理方式,關(guān)于 null ,你應(yīng)該知道下面這幾件事情來有效的了解 null ,從而避免很多由 null 引起的錯誤,具體細(xì)節(jié)跟隨小編一起學(xué)習(xí)下吧

對于 Java 程序員來說,空指針?直是惱?的問題,我們在開發(fā)中經(jīng)常會受到 NullPointerException 的異常。Java 的發(fā)明者也承認(rèn)這是?個巨?的設(shè)計錯誤。那么關(guān)于 null ,你應(yīng)該知道下?這?件事情來有效的了解 null ,從?避免很多由 null 引起的錯誤。

Java中關(guān)于 null 的幾種處理方式詳解

??寫敏感

?先,null 是 Java 中的 關(guān)鍵字 ,像是 public、static、final。它是??寫敏感的,你不能將 null 寫 成 Null 或 NULL,編輯器將不能識別它們?nèi)缓髨箦e。

Java中關(guān)于 null 的幾種處理方式詳解

這個問題已經(jīng)?乎不會出現(xiàn),因為 eclipse 和 Idea 編譯器已經(jīng)給出了編譯器提示,所以你不?考慮這
個問題。

null 是任何引?類型的初始值

null 是所有引?類型的默認(rèn)值,Java 中的任何引?變量都將null作為默認(rèn)值,也就是說所有 Object 類下的引?類型默認(rèn)值都是 null。這對所有的引?變量都適?。就像是基本類型的默認(rèn)值?樣,例如 int的默認(rèn)值是 0,boolean 的默認(rèn)值是 false。
下?是基本數(shù)據(jù)類型的初始值

 

類型 初始值
booleab false
char /u0000
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d

 

null 只是?種特殊的值

null 既不是對象也不是?種類型,它僅是?種特殊的值,你可以將它賦予任何類型,你可以將 null 轉(zhuǎn)換為任何類型

?
1
2
3
4
5
6
7
8
9
public static void main(String[] args) {
 String str = null;
 Integer itr = null;
 Double dou = null;
 Integer integer = (Integer) null;
 String string = (String)null;
 System.out.println("integer = " + integer);
 System.out.println("string = " + string);
}

你可以看到在編譯期和運?期內(nèi),將 null 轉(zhuǎn)換成任何的引?類型都是可?的,并且不會拋出空指針異常。

null 只能賦值給引?變量,不能賦值給基本類型變量。

持有 null 的包裝類在進??動拆箱的時候,不能完成轉(zhuǎn)換,會拋出空指針異常,并且 null 也不能和基本數(shù)據(jù)類型進?對?

?
1
2
3
4
5
public static void main(String[] args) {
 int i = 0;
 Integer itr = null;
 System.out.println(itr == i);
}

使?了帶有 null 值的引?類型變量, instanceof instanceof 操作會返回

?
1
2
3
4
5
6
7
8
9
public static void main(String[] args) {
 Integer isNull = null;
 // instanceof = isInstance ?法
 if(isNull instanceof Integer){
 System.out.println("isNull is instanceof Integer");
 }else{
 System.out.println("isNull is not instanceof Integer");
 }
}

這是 instanceof 操作符?個很重要的特性,使得對類型強制轉(zhuǎn)換檢查很有?靜態(tài)變量為 null 調(diào)?靜態(tài)?法不會拋出 NullPointerException。因為靜態(tài)?法使?了靜態(tài)綁定。

使? Null-Safe ?法

你應(yīng)該使? null-safe 安全的?法,java 類庫中有很多?具類都提供了靜態(tài)?法,例如基本數(shù)據(jù)類型的包裝類,Integer , Double 等。例如

?
1
2
3
4
5
6
7
8
9
public class NullSafeMethod {
 private static String number;
 public static void main(String[] args) {
 String s = String.valueOf(number);
 String string = number.toString();
 System.out.println("s = " + s);
 System.out.println("string = " + string);
 }
}

number 沒有賦值,所以默認(rèn)為null,使? String.valueOf(number) 靜態(tài)?法沒有拋出空指針異常,但是使? toString() 卻拋出了空指針異常。所以盡量使?對象的靜態(tài)?法。

null 判斷

你可以使? == 或者 != 操作來?較 null 值,但是不能使?其他算法或者邏輯操作,例如?于或者?于。跟SQL不?樣,在Java中 null == null 將返回 true,如下所示:

?
1
2
3
4
5
6
7
8
public class CompareNull {
 private static String str1;
 private static String str2;
 public static void main(String[] args) {
 System.out.println("str1 == str2 ? " + str1 == str2);
 System.out.println(null == null);
 }
}

到此這篇關(guān)于Java中關(guān)于 null 的?種處理?式的文章就介紹到這了,更多相關(guān)Java null處理⽅式內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/weixin_45397785/article/details/120910914

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 人成午夜免费大片在线观看 | 亚洲九九精品 | 国产成人愉拍免费视频 | 国产香蕉久久 | 青青久久精品国产免费看 | 男人操女生 | re99热| 日韩欧美国产一区 | 岛国a香蕉片不卡在线观看 荡女淫春2古装 | 欧洲男同直粗无套播放视频 | 成人精品在线 | 国色天香社区在线视频免费观看 | 亚洲国产精品成人综合久久久 | 久久久久久久久性潮 | 日日操天天射 | 日本天堂网 | 亚洲欧美专区精品久久 | 2019nv天堂香蕉在线观看 | 女仆掀起蕾丝裙被打屁股作文 | 欧美乱妇高清无乱码视频在线 | 亚洲成色www久久网站 | 亚洲国产在线观看免费视频 | hezyo加勒比一区二区三区 | 甜性涩爱| 高清女主播一区二区三区 | 黑人巨茎大战欧美白妇 | 十六一下岁女子毛片免费 | 免费国产一级 | 美国xxnx| 国内久久精品 | 欧美一卡2卡3卡四卡海外精品 | 国产精品免费综合一区视频 | v视界影院.vsjla | 四虎免费在线观看 | 91chinese 永久免费 | 久久精品国产清白在天天线 | 欧美日韩国产亚洲一区二区三区 | 国产区成人综合色在线 | 草逼吧 | 国产理论片在线观看 | 久久精品中文騷妇女内射 |