简易Java(13):Java中的null
到底为何方神圣?
让我们从下面这行代码开始:
String x = null;
上面这句话到底做了什么?
在回答这个问题之前,我们需要先回顾一下什么是变量以及什么是变量值?一个常见的比喻是变量就类似一个箱子。就像你可以使用箱子盛放东西一样,你能用变量存放变量值。当你声明一个变量时,你就需要设置它的类型。
Java中主要分为两种数据类型:基本类型和引用类型。声明为基本类型的变量存储变量值;声明为引用类型的变量存储引用。在上面那行代码里,初始化语句声明了一个变量x
,x
存储一个字符串的引用。此时这里就是null
。
在内存中,null
究竟是什么?
在内存中,null
是什么呢?或者说,在Java中,null
值是什么?
首先,null
不是一个可以合法的对象实例,所以并没有为它分配内存。它只是一个简单的值,这个值表示对象引用现在并没有引用一个对象实例。
在Java虚拟机规范中,有如下描述:
Java虚拟机规范没有指定一个确定的值来编码
null
。
我可以假定它就是事务的一串0
值,就行是在C语言那样。
在内存中,x
究竟是什么?
现在,我们知道null
是什么。并且,我们知道变量就是存储位置,就是一个包含值的符号名称(标志符)。那么,x
究竟在内存中的什么位置?
从Java虚拟机运行时数据区的图片上,我们可以知道,每个方法在线程内都有一个私有栈桢,本地变量就位于栈桢里。
《Simple Java》是一本讲解Java面试题的书。讲解也有不少独特之处,为了面试,《简易Java》走起!
作 者: D瓜哥,https://www.diguage.com/
原文链接:null到底为何方神圣?">https://wordpress.diguage.com/archives/119.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
原文链接:null到底为何方神圣?">https://wordpress.diguage.com/archives/119.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
Java,现在学这个的人很多