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

服務(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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: xx18-19xxxxhd| 暴露狂婷婷 | www.色姐姐| 14一15sexvideo日本 | 欧美影院天天5g天天爽 | 小兰被扒开内裤露出p | 亚州日韩精品AV片无码中文 | 日日干夜夜拍 | 乌克兰成人性色生活片 | 亚洲精品国产综合久久一线 | 午夜福利试看120秒体验区 | 99久久精品免费精品国产 | 男人操女人视频 | 91李宗精品72集在线观看 | 暖暖高清日本在线 | 国产视频久久久 | 亚洲乱码一区二区三区国产精品 | 美女的让男生桶 | 热热99| 经典千人斩一区二区视频 | 四虎 2022 永久网站 | 99国产精品免费观看视频 | 羞羞一区二区三区四区片 | 故意短裙公车被强好爽在线播放 | 亚洲九九爱| 99久久精品免费观看区一 | 国产精品区牛牛影院 | 边摸边吃奶玩乳尖视频 | 欧美日韩人成在线观看 | 明星h文集合短篇小说 | 丝瓜黄瓜茄子西红柿秋葵榴莲 | 青草青青在线视频观看 | 99久久精品国产免看国产一区 | 日韩欧美中文字幕出 | 狠狠色综合久久婷婷色天使 | 4hu永久地域网名入口 | 午夜久久久久久亚洲国产精品 | 99精品国产美女福到在线不卡 | 黑人性xxx | 色菇凉天天综合网 | 女明星放荡高h日常生活 |