【发布时间】:2015-08-21 16:59:02
【问题描述】:
DeadObjectException 和 NullPointerException 有什么区别?
我想我可以理解,但我只是想确定一下。
我的理解
DeadObjectException 发生在您尝试引用某物(并且内存仍然存在)但没有任何指针保存其地址时,因此无法访问该内存。它与NullPointerException 的不同之处在于内存仍然有效,只是无法访问它。
我有正确的想法吗?根据网站上的其他问题:
我认为我的断言是正确的,我只是想确认一下。
【问题讨论】:
-
远程对象是与另一个进程中的对象绑定的对象。当您在其上调用方法时,它充当该其他对象的代理。当远程对象断开连接时,该对象不再可访问。您持有的实例仍然存在(因此,不是 NPE),但它指的是不再存在的东西。原则上类似于 NPE,但更高级别(并且纠缠在 android OS 中)。 NPE 是当您执行
MyObject foo = null; foo.something();foo is not an object it is an null reference 时会发生的情况。 -
所以(简单地说)我持有一个持有实际对象的中间人对象。当中间人失去他的参考时,那是我得到 DOE 的时候,因为他不知道在什么上执行命令?
-
@njzk2 我对您的评论的解释正确吗?
-
@njzk2 耶!你想把它作为答案让我接受吗?