关于 Java 中 null 的事实

17 Mar 2025 | 5 分钟阅读

每种编程语言,包括Java,都存在null。没有哪个程序员在编写与null相关的代码时没有遇到过问题。程序员主要在尝试使用null数据执行某些操作时遇到NullPointerException。NullPointerException 是一个类,属于java.lang 包。

在理解null的知识点之前,需要先了解Java变量。如果你不知道Java变量是什么,请点击以下链接。

每个开发者都应该了解以下关于Java中null的知识点。

区分大小写

在Java中,我们不能将null写成NULL,也不能写成0(像C语言那样),因为null是一个字面量,而Java中的关键字是区分大小写的。

让我们用一个例子来理解null的区分大小写行为。

NullExample1.java

输出

Facts about null in Java

引用变量的值

默认情况下,Java中的每个引用变量都具有null值。引用变量用于指示和存储Java中引用类型对象的/值。类、数组、枚举和接口等都是Java中的引用类型。

因此,如果未将任何对象赋给引用类型,则该引用类型将存储null值。

让我们用一个例子来理解引用变量如何处理null值。

NullExample2.java

输出

Facts about null in Java

Null 类型

在Java中,null既不是对象也不是类型。它是一个特殊的值,我们可以将其赋给任何引用类型变量。我们可以将null强制转换为任何我们想要的类型,例如String、int、double等。

让我们用一个例子来理解如何将null值赋给任何引用类型。

NullExample3.java

输出

Facts about null in Java

自动装箱和拆箱

自动装箱自动拆箱是我们可以在Java中执行的两个最重要的操作。当我们在执行操作时将null值赋给任何原始类型的装箱数据类型时,编译器会抛出NullPointerException

让我们用一个例子来理解自动装箱和自动拆箱关于null的知识点。

NullExample4.java

输出

Facts about null in Java

instanceof 运算符

为了检查一个对象是否是指定类型的实例,我们使用instanceof运算符。当表达式的值在运行时不为null时,instanceof运算符返回true。它在类型转换检查中起着重要作用。

让我们用一个例子来理解instanceof运算符。

NullExample5.java

输出

Facts about null in Java

静态与非静态方法

我们不能在值为null的引用变量上调用非静态方法。如果调用,它将抛出NullPointerException,但我们可以使用值为null的引用变量来调用静态方法。因为静态方法是通过静态绑定绑定的,所以它们不会抛出Null pointer Exception。

让我们用一个例子来理解null的这个知识点。

NullExample6.java

输出

Facts about null in Java

== 和 != 运算符

在Java中,这两个运算符允许与null一起使用。这两个运算符在Java中检查对象是否为null时都很有用。

让我们用一个例子来理解这两个运算符如何与null一起工作。

NullExample7.java

输出

Facts about null in Java

每个Java开发者都应该了解以上所有关于null的知识点。