您的位置:首页 > 编程语言 > Java开发

Java中的null到底是什么?

2015-10-02 21:13 267 查看
让我们从下面这个语句开始:

1.下面这条语句到底干了什么?String x = null;首先回想一下,什么是变量什么是值,
一个通常的比喻就是,一个变量就像一个盒子。就像你能用盒子存储一些东西,你也可以使用一个变量来存储一个值。

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

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

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

String x=null;

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



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



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

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

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

From JVM Specifications:

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

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

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

那么它在内存的哪里呢?

栈中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  存储 string Java null