Bootstrap

Java中的null到底是什么?

小伙伴们注意了!

小编在这里给大家送上关注福利:

转发本文,关注+私信小编“资料”即可领取小编精心准备的资料一份!

让我们从下面的陈述开始:

一、这句话到底是什么意思?

回想一下什么是变量,什么是值。
一个常见的比喻是变量类似于一个盒子。
就像您可以使用一个框来存储某些东西一样,您也可以使用一个变量来存储一个值。
在声明变量时,我们需要设置它的类型。

Java中有两大类类型:原语类型和引用类型。
声明为基元类型的变量存储值;
引用类型声明的变量存储引用。
在这种情况下,初始化语句声明一个变量“x”。
“x”存储字符串引用。
这里是零。

下面的可视化将更好地理解这个概念。

what-is-null

如果x = "abc",则如下所示:

variable-reference

二、内存中的null到底是什么?

内存中的null到底是什么?
或者Java中的null值是什么?

首先,null不是一个有效的对象实例,因此没有为它分配内存。
它只是一个值,指示对象引用当前不引用对象。

JVM规范:

Java虚拟机规范不要求具体的值编码为null。

我假设它和其他C语言一样都是0。

三、内存中的x到底是什么?

现在我们知道零是什么。
我们知道变量是一个存储位置和一个相关的符号名(标识符),它包含一些值。
x在内存中的确切位置?

从JVM运行时数据区域的图中,我们知道由于每个方法在线程的堆栈中都有一个私有堆栈框架,所以本地变量位于该框架中。

最后,想学习Java的小伙伴们!

转发!

转发后关注+私信回复:“资料”就可以拿到一份我为大家准备的Java学习资料!小编V❤: suxueJava

;