Java中的null到底是什么?

来源:互联网 发布:mac版chrome没有flash 编辑:程序博客网 时间:2024/05/24 02:22

让我们从下面这个语句开始:

1.下面这条语句到底干了什么?

String x = null;
首先回想一下,什么是变量什么是值,

一个通常的比喻就是,一个变量就像一个盒子。就像你能用盒子存储一些东西,你也可以使用一个变量来存储一个值。

当然,当你声明一个变量的时候,你需要设置它的类型。


Java语言中主要有两种类型:原始类型和引用类型。声明了原是变量类型的变量存储的是原始类型数据(8种),

声明了引用类型的变量存储的是引用。在这个例子中,初始化语句

String x=null;

声明了一个变量"x","x"存储的是String类型(8中原始类型之外的类型)的引用。在这里为空。


what-is-null

if x="abc",那么就会发生类似下面的事情:

variable-reference

2.到底null在内存中是什么样子的?


首先,null 并不是一个确切的对象实例,所以这里并没有给它分配内存。它只是一个值,这个值指明了,

这个对象的引用目前并没有引用任何对象。

From JVM Specifications:

The Java Virtual Machine specification does not mandate a concrete value encoding null.

3.到底x在内存中是什么?


现在知道了null是什么,而且我们也知道了,一个变量是包含某个值的一个存储的位置以及一个标识符。

那么它在内存的哪里呢?

栈中。




















0 0
原创粉丝点击