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ì.
- 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.
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ụ:
Mã:
Object obj = NULL; // Not Accepted
Object obj = Null; // Not Accepted
Object obj1 = null //Accepted
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:
Mã:
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
Mã:
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.
Mã:
// 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;
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:
Mã:
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:
Mã:
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.
- Các bạn có thể xem chi tiết hơn tại https://www.upwork.com/resources/what-is-null-in-java