艾瑞
艾瑞
新闻资讯
中心动态 学习技巧
为您深度解析:java中的null到底是什么?
2020-08-10

1、这句话到底是做什么的?

回想一下什么是变量,什么是值。一个常见的比喻是变量类似于盒子。就像可以使用盒子来存储内容一样,也可以使用变量来存储值。声明变量时,我们需要设置其类型。
Java有两种主要类型:基本类型和引用类型。声明为原始类型的变量存储值;引用类型声明的变量存储引用。在这种情况下,初始化语句声明变量“ x”。“ x”存储字符串引用。在这里为空。
下面的可视化效果使您对该概念有了更好地了解。




如果x =“ abc”,则如下所示:



2、内存中的空值到底是什么?

内存中的null到底是什么?或Java中的null值是什么?
首先,null不是有效的对象实例,因此没有为其分配内存。它只是一个值,指示对象引用当前未引用对象。
从JVM规范:

Java虚拟机规范没有规定编码为null的具体值。
我假设所有其他类似C的语言都是类似的零。

3、内存中的x到底是什么?
现在我们知道什么是null。而且我们知道变量是存储位置和包含一些值的关联符号名(标志符)。x在内存中的确切位置?
从JVM运行时数据区域的图表中,我们知道,由于每种方法在线程的堆栈中都有一个私有堆栈框架,因此局部变量位于该框架上。