我们从以下声明开始:String x = null ;

1.这个陈述究竟做了什么?

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

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

下面的可视化给出了这个概念的更好的意义。在这里相信有许多想要学习Java的同学,大家可以关注小编头条号,私信【学习】即可免费领取一整套系统的Java学习教程!

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

2.什么是内存空?

内存中究竟是什么?或者什么是Java中的空值?

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

来自JVM规格:Java虚拟机规范不要求编码为null的具体值。

我会认为它是类似于其他类似C语言的东西的全零。

3.什么是x在内存中?

现在我们知道null是什么。我们知道一个变量是一个存储位置和一个包含某个值的关联符号名称(一个标识符)。x在内存中的位置是什么?

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

相关文章