如何在java中检查null?

如何在java中检查null?,java,Java,我在做某个项目,得到了一个条件,当我必须从列表中检查对象是否为null,并且对象的所有变量都为null 那么,有人能给我解释一下,一个对象是如何被检查为空的,即变量或其他方式 java中如何在内部检查对象是否为null不需要代码。想要这个概念吗 请讲一点细节 我的问题:Java如何在内部检查对象是否包含空值?如果您查看的是单个项目: if(object == null) { (...) } 你提到了一份清单。让我们假设它是一个对象数组列表: for(Object o : array_li

我在做某个项目,得到了一个条件,当我必须从列表中检查对象是否为null,并且对象的所有变量都为null

那么,有人能给我解释一下,一个对象是如何被检查为空的,即变量或其他方式

java中如何在内部检查对象是否为null不需要代码。想要这个概念吗

请讲一点细节


我的问题:Java如何在内部检查对象是否包含空值?

如果您查看的是单个项目:

if(object == null)
{
   (...)
}
你提到了一份清单。让我们假设它是一个对象数组列表:

for(Object o : array_list)
{
   if(o == null)
   {
      (...)
   }
}

在开始循环之前,您还需要检查列表是否为空。

基本上,任何列表都可以轻松检查空值。null的每个内部细节和实现以及与对象的比较都完全由java管理,因此我们只需要将对象与null进行比较,如下所示:-

对于任何列表或集合,要查看其中存储的对象是否为空:-

List <String> list = new ArrayList<String>();
list.add("hi");
list.add(null);
for(String s : list){
 if(s == null){
// do your logics here
   }
}

显然,您实际上是在问如何在后台实现空检查

答案是具体实现的。对于不同的JVM和/或执行平台,可能会有所不同。如果您想研究特定JVM上的特定实现,我建议您签出JVM源代码和/或让JIT编译器转储编译后的本机代码供您检查

基本上有两种方法:

显式x==null测试通常会编译成一个指令序列,该指令序列将x的值与表示null的值进行比较。这通常是32位或64位零

x.toString中的隐式null检查也可以用同样的方法完成。或者,可以通过简单地将x视为机器地址并尝试在该地址获取值来实现。假设未映射零页,这将触发硬件分段故障异常。Java使用本机代码机制捕获该异常,并将其转换为NullPointerException


Java不检查对象是否为空

不能有null对象,因为null不扩展对象类

在java中,可以将变量赋值为null,这意味着它不引用任何内容。实际上,它引用的是null定义为的字节


这就是其他答案所做的,他们正在检查引用变量是否实际指向空值。然而,对象本身从来都不是空的。

这是谷歌的问题,不是真正的编程问题。不,不是那样的。。我在谷歌上做了很多尝试,但在这里找不到任何被问到的东西。。!!!我的软件中的izZ条件。。!!!那么,请在您的问题中更具体一些,因为从措辞上看,您似乎在要求一个方法来检查对象是否为null。编辑你的问题。当然我会这么做。但是sumbody能告诉我如何检查任何对象的空概念吗。它怎么会是重复的?你搞错我了!!我想问java是如何检查null的,即通过检查该变量的所有变量是否为null或其他方式?@tusargarg不清楚你在问什么。你应该澄清moreizZ,我只是想知道在java内部如何检查对象的null,我不想要代码。想要这个概念。那么可以打印一个对应的int值null吗?不是在普通Java中。但是你不需要。看看我关于如何研究这个问题的建议。一个很好的解释!这个问题对于反对票来说并不坏,但是没有正确地表达出来。这是没有帮助的。JLS说null不是对象,这是正确的。然而,实际上Java专业人士很乐意使用短语checkanobjectfornull,因为我们都知道它的意思。。。对我们来说,这是真的。然而,我正在阅读OP的一些评论,在其中一些评论中,他问如果所有变量都为空,对象是否为空。。。。[以及]如何在内部检查对象是否为null我将其解释为想要知道确切的细节,其中一个是对象本身不为null,变量引用null,这就是我们检查对象是否为null的方式。我认为这是因为英语技能差……很公平。我猜我们不知道OP到底想要什么。@Marcin你是对的,我也想问同样的问题,非常感谢,但当你回答时,我找到了。
List <String> list = new ArrayList<String>();
list.add("hi");
list.add(null);
for(String s : list){
 if(s == null){
// do your logics here
   }
}