日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

1.12 Java空对象(null)是怎么回事?

發布時間:2025/3/20 java 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.12 Java空对象(null)是怎么回事? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 語言支持兩種數據類型,分別是基本數據類型和引用數據類型,而 null 是一種特殊的引用數據類型。本節主要介紹 Java 空對象是什么及如何判斷對象是否為空。

對象的實例化就是為對象開辟內存空間。

例如以下 3 條語句

Student stu = new Student(); // 語句1 Student stu2; // 語句2 stu2 = new Student(); // 語句3
  • 語句 1 先聲明一個 Student 類型的變量 stu,然后利用 new 關鍵字為其創建實例。一步到位,定義了一個實例變量并同時賦值。
  • 語句 2 是聲明一個 Student 類型的變量 stu2,雖然從表述習慣上講 stu2 是實例變量,但實際上此時 stu2
    并未成為一個真正的實例,它僅僅只是一個變量名字。
  • 語句 3 中的 stu2 才成為了一個 Student 實例,它指向了內存中的某塊地址空間。

為了明確表示那些僅有名字而沒有內存空間的變量的具體內容,Java 引入了關鍵字 null。 null 表示“空”的意思,是絕對意義上的空,這個空指的是不存在。

一個引用變量(當變量指向一個對象時,這個變量就被稱為引用變量)沒有通過 new 分配內存空間,這個對象就是空對象,Java 使用關鍵字 null 表示空對象。示例代碼如下:

String str1= null; str1 = "歪比巴卜";

注意:null 是關鍵字,是大小寫敏感的,不能將 null 寫成 Null 或 NULL。

引用變量的默認值是 null。當試圖調用一個空對象的屬性或方法時,會拋出空指針異常(NullPointerException),如下代碼所示:

String str1; // 相當于 String str1= null; // 輸出null字符串 System.out.println(str1); // 調用length()方法 int len = str1.length();

第 5 行代碼不會發生編譯錯誤,但是當代碼運行到第 5 行時,系統會拋出空指針異常。這是因為調用 length() 方法時,str1 是空對象。程序員應該避免調用空對象的屬性和方法。

判斷一個對象是否為 null,可以用if (obj == null) { }來判斷

代碼如下:

// 判斷對象是否為null if (str1 != null) {int len = str1.length(); }

如果把上面代碼改成如下代碼:

String str2 = ""; int num = str2.length(); System.out.println(num); // 輸出結果為0

運行以上代碼時沒有拋出異常,因為 str2 是一個值為""的字符串對象。""表示的是一個長度為 0 的空字符串,它在內存中會被分配一個空間,str2 是直接指向""內存空間的實例化對象。

產生空對象主要有以下兩種可能性:

  • 程序員自己忘記了實例化,所以程序員必須防止這種情況發生,應該仔細檢查自己的代碼,為自己創建的所有對象進行實例化并初始化。
  • 空對象是其它地方傳遞過來的,需要通過判斷對象是否為 null 進行避免。

總結

以上是生活随笔為你收集整理的1.12 Java空对象(null)是怎么回事?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。