Java--- 關於null的處理若干方法


Java--- 關於null的處理若干方法

相信空指針是平時最常見的錯誤了,下面認識 null ,有助於解決 NPE 問題。

nulll大小寫敏感

關於這個問題,其實是對面試時候手寫算法題時候需要注意的問題。

null 它是 Java的關鍵字,它是大小寫敏感的,不能寫成 NULL,Null等等。

當然在現實工作中,現有市面上的流行編譯器一般會有報錯提示。

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

這里需要注意是引用類型,基本數據類型的,int 默認初始值是 0;boolean 默認初始值是 false 等。

也就是說 Object 類型的默認初始值都是 null 。

null 是一種有特殊的值

null 既不是對象也不是數據類型,他只是一種特殊的值。

可以將它復制給任何引用類型的變量,這時並不會拋出空指針異常。

但是注意,並不能賦值給基本數據類型的變量,因為持有 null 的包裝類在進行自動拆箱的時候,不能完成轉換,會拋出空指針異常。null 同時也不能和基本數據類型作比較。

 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 操作符一個很重要的特性,使得對類型強制轉換檢查很有用。

靜態變量為 null 調用靜態方法不會拋出 NullPointerException。因為靜態方法使用了靜態綁定。

使用 Null-Safe 方法

所謂使用 Null-Safe 方法,其實就是多使用工具類提供的的靜態方法。以此來避免 NullPointerException。

private static  String numbers;

    public static void main(String[] args) {
        String string = String.valueOf(numbers);   //編譯通過
        String s = numbers.toString();   //java.lang.NullPointerException
    }

null 的判斷

你可以使用 == 或者!=操作來比較 null 值,但是不能使用其他算法或者邏輯操作,例如小於或者大於。跟SQL不一樣,在Java中null == null 將返回true。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM