龙空技术网

Java 中的 null 是什么

编程life 127

前言:

现时各位老铁们对“java中的null是什么数据类型”可能比较看重,看官们都想要剖析一些“java中的null是什么数据类型”的相关文章。那么小编也在网上搜集了一些关于“java中的null是什么数据类型””的相关知识,希望兄弟们能喜欢,各位老铁们一起来了解一下吧!

我们从一个语句声明开始:

String s = null;

回想一下什么是变量,什么是值。一个常见的比喻是将变量类比为盒子。就像可以使用盒子来装东西一样,也可以使用变量来存储值。声明变量时,我们需要设置其类型。

Java有两种主要类型:基本类型和引用类型。原始类型的变量存储值;引用类型的变量存储引用。在这种情况下,初始化语句声明变量“ x”。“ x”存储字符串引用,引用为 null

下图可以更好的理解:


如果 x = "abc", 那么应该如下图所示:

那么内存中的null 是什么,或者说 Java 中的 null 是什么?

首先,它不是一个有效的对象实例, 因为没有为 null 分配内存,它只是一个值,用于指示对象还未被初始化。

而JVM 虚拟机规范中,也没有明确规定 Java 的 null 具体应该是什么。

但一般来说, Java 中的 null 与其他 类C 语言一样,都是零值

那么 null 具体存放在哪呢?

在 Java 中,变量是存放在局部变量区的,变量引用的对象则是存放在堆上。当变量声明为 null 时, JVM 为变量在栈上分配一个地址,它的值为零,由于没有引用任何对象,因此堆上不存在对应对象。

因此x 真正的图像应是这样

标签: #java中的null是什么数据类型 #java中null的含义 #java中的null是什么类型 #java的null是什么意思