首页 新闻 会员 周边

Java对象底层问题:对象==null的底层到底比的什么?

0
[待解决问题]

最近突然看到java单例模式的写法,用到了双检索+volatile去正确创建单例模式,突然想知道对象null的底层到底是比较的什么,如果按照重排的要求,可能会出现指向一个空地址,但是地址已经存在,那为什么是空?,想知道对象null究竟是比较的什么

灰二h的主页 灰二h | 菜鸟二级 | 园豆:216
提问于:2023-02-13 20:27
< >
分享
所有回答(2)
0

去看JDK 或 openjdk源码了
或许是 C/C++ 写的

快乐的凡人721 | 园豆:3922 (老鸟四级) | 2023-02-14 08:48
0

在Java中,使用 == 运算符比较两个对象时,实际上是比较两个对象的引用是否相同。如果两个对象的引用相同,则它们是同一个对象;否则它们是不同的对象,即使它们的内容完全相同。

如果一个对象的值为 null,则它的引用为空,也就是没有指向任何对象。当我们使用 == 运算符比较一个对象与 null 时,实际上是在比较这个对象的引用是否为空。如果这个对象的引用为空,则说明这个对象并没有指向任何对象,也就是它的值为 null。

因此,当我们将一个对象与 null 进行比较时,实际上是在判断这个对象是否为 null,也就是是否指向任何对象。如果这个对象为 null,则说明它的引用为空;否则它指向某个对象,它的值不为 null。

心若向阳花自开 | 园豆:275 (菜鸟二级) | 2023-03-08 14:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册