× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Java Null - Khám phá các sự thật chưa biết về Java Null

29/05/2021 01:24

Trong bài viết Java hôm nay, chúng ta sẽ thảo luận về Java Null là gì và 06 sự thật chưa biết của Java Null trong ngôn ngữ lập trình Java. Chúng ta cũng sẽ khám phá một số kỹ thuật để giảm thiểu kiểm tra null và cách tránh các ngoại lệ con trỏ null khó chịu.

Khái niệm Java Null là gì?

Trong Java, null là một từ khóa giống như các từ khóa khác public, static hoặc final. Nó chỉ là một giá trị cho thấy rằng đối tượng không đề cập đến. Việc phát minh ra từ "null" có nguồn gốc để biểu thị sự vắng mặt của một cái gì đó. Ví dụ: sự vắng mặt của người dùng, tài nguyên hoặc bất cứ thứ gì.

Khái niệm Java Null là gì?

Khái niệm Java Null là gì?

 Tuy nhiên, trong nhiều năm, Null khiến các lập trình viên Java gặp rắc rối do ngoại lệ con trỏ null rất khó sử dụng. Khi bạn khai báo một biến boolean, nó sẽ nhận giá trị mặc định là false. Tương tự, bất kỳ biến tham chiếu nào trong Java đều có null làm giá trị mặc định. Chúng ta sử dụng null để biểu thị "không có đối tượng" hoặc "không xác định" hoặc "không có sẵn", nhưng những ý nghĩa này là dành riêng cho ứng dụng.

Một số sự thật có thể bạn chưa biết về Java Null 

Java Null phân biệt chữ hoa và chữ thường

Các từ khóa trong Java có phân biệt chữ hoa và chữ thường. Vì thế, chúng ta không thể viết null Là Null hay NULL được. Nếu chúng ta viết như vậy, trình biên dịch sẽ không thể nhận ra chúng và sẽ báo lỗi. Ví dụ:

Object obj = NULL;  // Not Accepted

Object obj = Null;  // Not Accepted

Object obj1 = null  //Accepted

>>> Tham khảo: Khóa học lập trình Java

Giá trị của biến tham chiếu là null

Bất kỳ biến tham chiếu nào cũng tự động có một giá trị null như giá trị mặc định.

Ví dụ minh họa:

package com.techvidvan.javanull;

public class NullExamples

{
  private static Object obj;

  private static Integer i;
  private static NullExamples t1;

  public static void main(String args[])

  {

    // it will print null;

    System.out.println("Value of Object obj is: " + obj);

    System.out.println("Value of Integer object i is: " + i);

    System.out.println("Value of NullExamples object t1 is: " + t1);

  }

}

Output

Value of Object obj is: null

Value of Integer object i is: null

Value of NullExamples object t1 is: null

Các kiểu null

Null chỉ là một giá trị đặc biệt. Nó không phải một đối tượng cũng không phải một kiểu mà chúng ta có thể gán cho bất kỳ kiểu tham chiếu nào và type nó thành bất kỳ kiểu nào.

 

// null can be assigned to String
    String string = null;
// you can assign null to Integer also

Integer myInt = null;

// null can also be assigned to Double

Double myDouble = null;

// null can be type cast to String

String myStr = (String) null;

// We can also type cast it to Integer

Integer myInt1 = (Integer) null;

// yes it's possible, no error

Double myDouble1 = (Double) null;

>>> Đọc thêm: Assertion trong Java là gì?

 

Autoboxing và Unboxing trong Java

Chúng ta có thể thực hiện Autoboxing và Unboxing với các giá trị null. Chúng ta chỉ có thể gán null cho các kiểu tham chiếu, không cho các biến nguyên thủy như char, int, double, float hoặc boolean.

Trình biên dịch sẽ ném một NullpointerException nếu chúng ta gán giá trị null cho một kiểu dữ liệu nguyên thủy trong Java . Đoạn mã sau đây cho thấy khái niệm này.

Mã để hiểu Autoboxing và Unboxing với null:

package com.techvidvan.javanull;

public class NullExamples

{

  public static void main (String[] args) throws java.lang.Exception

  {

    //No error, because we are assigning null to reference type of wrapper class.

    Integer myIntObj = null;
    //There will be an error as we are unboxing null to int type

    int intType = myIntObj;

  }

}

Đầu ra:

Exception in thread “main” java.lang.NullPointerException

at project1/com.techvidvan.javanull.NullExamples.main(NullExamples.java:10)

 

Sử dụng null với phương thức tĩnh và không tĩnh trong Java

Chúng ta có thể gọi một phương thức static với các biến tham chiếu có giá trị null. Tuy nhiên, nếu chúng ta gọi một phương thức không tĩnh trên một biến tham chiếu có giá trị null, trình biên dịch sẽ ném NullPointerException. Các phương thức tĩnh không ném ngoại lệ vì các phương thức này được kết nối với nhau bằng cách sử dụng liên kết tĩnh.

Kết luận:

Trong bài viết này, chúng ta đã tìm hiểu về Java Null và một số facts về null trong Java mà bạn nên biết. M0ng rằng qua bài viết bạn đã hiểu thêm về Java Null và cách sử dụng của chúng. Tìm hiểu thêm về Java và các ngôn ngữ lập trình khác qua các khóa học lập trình tại T3H.