Java – Null

Hầu hết các ngôn ngữ lập trình đều được tăng tính chặt chẽ với null. Trong Java, không hợp lệ là java.lang.NullPointerException.  Vì nó là một class trong gói java.lang. Nó được gọi khi chúng ta thực hiện một số hoạt động có hoặc không có giá trị và đôi khi chúng ta không biết nó xảy ra ở đâu.

Đặc điểm của Null

Hầu hết các lập trình viên đều phải đổi mặt với các vấn đề liên quan đến Null.  Có một vài đặc điểm chúng ta nên biết về Null trong ngôn ngữ lập trình Java.

  • Case sentive  – Phân biệt chữ hoa và chữ thường
  • Giá trị biến tham chiếu
  • Kiểu của null
  • Autoboxing và unboxing
  • Instanceof operator
  • Các phương thức static vs non-static
  • == và !=

Java null là case sentive – Phân biệt chữ hoa và chữ thường

Nó là nghĩa đen và các từ khoá trong Java là case sentive nghĩa là phân biệt giữa chữ hoa và chữ thường, nên chúng ta không thể viết nó là NULL hoặc o như chúng ta sử dụng trong C

Ví dụ

public class Test
{
    public static void main (String[] args) throws java.lang.Exception
     {
        // Lỗi biên dịch : can't find symbol 'NULL'
        Object obj = NULL;       
        // Chạy thành công
        Object obj1 = null;
    }
}

Kết quả

5: error: cannot find symbol
can’t find symbol ‘NULL’
^
variable NULL
class Test
1 error

Giá trị biến tham chiếu

Bất kỳ biến tham chiếu nào đều tự động có giá trị null

public class Test
{
    private static Object obj;
    public static void main(String args[])
    {
        // Nó sẽ print null;
        System.out.println("Value of object obj is : " + obj);
    }
}

Kiểu của Null trong Java

Java Null chỉ là một giá trị đặc biệt, nó không phải là object hay type

String str = null;
Integer itr = null;
Double dbl = null;
String myStr = (String) null;
Integer myItr = (Integer) null;
Double myDbl = (Double) null;

Autoboxing và Unboxing

Một lỗi sẽ được đưa ra nếu giá trị null được gán cho kiểu dữ liệu căn bản trong Java

public class Test
{
    public static void main (String[] args) throws java.lang.Exception
    {
          
       Integer i = null;
       int a = i;
    }
}

Instanceof operator

Khi chạy, Instanceof operator trong Java là true nếu biểu thức là Java null, nó sẽ kiểm tra type của instance của object

public class Test
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Integer i = null;
        Integer j = 10;            
        //prints false
        System.out.println(i instanceof Integer);
        //Biên dịch thành công
        System.out.println(j instanceof Integer);
    }
}

Các phương thức static và non-static

Một giá trị non-static không thể được gọi bằng giá trị null, nó sẽ đưa ra một NullPointerException, nhưng điều này sẽ không xảy ra với các phương thức static

public class Test
{            
     public static void main(String args[])
     {
         Test obj= null;
         obj.staticMethod();
         obj.nonStaticMethod();                            
     }    

     private static void staticMethod()
     {
         System.out.println("static method, can be called by null reference");
     }       
 
     private void nonStaticMethod()
     {      
          System.out.print(" Non-static method- ");
          System.out.println("cannot be called by null reference");
     }
}

Toán tử == và !=

Những toán tử so sánh này có thể hoạt động tốt với các giá trị null

public class Test
{            
    public static void main(String args[])
    {
        System.out.println(null==null);
        System.out.println(null!=null);
    }
}

 

You May Also Like

About the Author: Nguyen Dinh Thuc

Leave a Reply

Your email address will not be published.