學習java中空指針異常

定義

當應用程序試圖在需要對象的地方使用 null 時,拋出該異常

出現空指針異常的前提條件是?

“空引用” 訪問實例相關【對象相關】相關的數據時,都會出現空指針異常。

垃圾回收器: GC

在java語言中,垃圾回收器主要針對的是堆內存。
當一個java對象沒有任何引用指向該對象的時候,
GC會考慮將該垃圾數據釋放回收掉

public class NullPointerTest{
    public static void main(String[] args) {
        //創建客戶對象
        Customer c = new Customer();
        //訪問這個客戶的id
        System.out.println(c.id);
        //重新給id賦值
        c.id =9521;
        System.out.println("客戶的ID是="+c.id);

        c = null;
        //NullPointerException
        //編譯器沒問題,因爲編譯器只是檢查語法,編譯器發現c是customer類型
        // customer 類型中有id 屬性,所有可以:c.id 語法過去
        //但是運行的時候需要對象的存在,但是對象沒了,就只能出現一個異常
        System.out.println(c.id);


    }


}
class Customer{
    //客戶id
    //成員變量中的實例變量,應該先創建對象,然後通過"引用."的方式訪問
    int id;
}

代碼運行內存圖

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章