Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >DeadObjectException与导致NullPointerException之间的差异

DeadObjectException与导致NullPointerException之间的差异
EN

Stack Overflow用户
提问于 2015-08-21 08:59:02
回答 3查看 492关注 0票数 8

DeadObjectExceptionNullPointerException有什么区别?我想我可能理解,但我只是想确定。

我的理解

当您试图引用某个内容(内存仍然存在)时,DeadObjectException就会发生,但是没有任何指针保存它的地址,因此无法到达该内存。与NullPointerException不同的是,内存仍然有效,只是无法到达它。

我有正确的想法吗?根据网站上的其他问题:

我认为我的说法是正确的,我只是想确定。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-21 10:01:53

远程对象(例如,IBinder)是绑定到可以处于另一个进程中的对象的对象。

当您在它上调用方法时,它充当另一个对象的代理。(而不是直接调用方法,而是要求代理传递您的意图并为您检索结果。)

当远程对象断开连接时,代理将无法到达该对象,但代理对象仍然是本地存在的。

您持有的实例仍然存在(因此,不存在NPE。只要您对实例有一个引用,它就不会消失。不可能持有引用并看到实例消失(某些对象将允许类似的行为,如WeakReference),因此您永远无法获得和NPE)。

然而,它指的是不再是这样的东西。从原则上讲,NPE类似于NPE,但它的水平要高得多(并且纠缠在android操作系统中,以及它处理进程间通信的方式)。

NPE是当你这样做时发生的事情

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MyObject foo = null;
foo.something();

foo不是一个对象,而是一个空引用。

票数 -2
EN

Stack Overflow用户

发布于 2015-08-21 10:36:26

NullPointerException是指引用没有指向同一个虚拟机中的任何对象的情况。

DeadObjectException是指当您调用一个不再存在的远程对象时。这种情况发生在两个不同的JVM上。

票数 1
EN

Stack Overflow用户

发布于 2015-08-21 10:01:42

NullPointerException -当程序试图访问对象的字段或方法或数组的元素时,如果没有对象或数组的实例可使用,则会引发这种情况。android.os.DeadObjectException -来自developer.android.com:在扩展RemoteException时,您正在调用的对象已经死亡,因为它的宿主进程不再存在。

例如:复制:)这是一个很好的例子,可以很好地理解它。

您有MyActivity和MyService类。您可以使用Handler/Messenger在它们之间进行通信。您可以在MyActivity中创建Handler和Messenger,然后通过意图将已创建的Messenger实例发送到MyService。然后,你做一些事情,时间流逝,你的MyActivity被摧毁,连同它的处理程序和信使。现在,如果您不能很好地处理这个问题,MyService将不会知道他拥有的Messenger不再有效,因此,他试图通过它发送一些东西,并获得DeadObjectexception:

/*向这个信使的处理器发送一条消息。

参数:向要发送的消息发送消息。通常通过Message.obtain()检索。抛出:如果目标处理程序不再存在,RemoteException抛出DeadObjectException。*/

公共空发送(消息消息)抛出RemoteException {.}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32145715

复制
相关文章
通过循环引用问题来分析Spring源码
本文主要分析Spring的循环依赖问题。开始正文之前,我们需要定义这2个类。LoopReferenceA中引用LoopReferenceB,LoopReferenceB中引用LoopReferenceA。
用户2032165
2018/09/03
1.4K0
通过循环引用问题来分析Spring源码
通过优化插件来提高 WordPress 运行效率
我听到很多人的抱怨,WordPress 效率很低,废话,WordPress 接口的开放必然就会造成效率有些低,然后你又装个30多个插件,效率不低才怪呢。但是有些插件是必须有的,那怎么办呢?如果你懂 PHP 的话,其实还有办法提供速度的,下面我提供一些我的方法:
Denis
2023/04/13
2930
可以让深度学习编译器来指导算子优化吗
之前在阅读Ansor论文的时候(https://zhuanlan.zhihu.com/p/390783734)我就在想这样一个问题,既然Ansor是在人为指定的推导规则下启发式的生成高性能的Scheduler模板。那么这个算子生成的Scheduler模板是否可以反过来指导我们写程序呢?嗯,然后我就开启了这个实验,但最近因为工作的事情delay得厉害,终于在这个周末抽出时间来更新这个实验结果并且记录了这篇文章。由于笔者只对GEMM的优化熟悉,这里就以优化X86的GEMM为例子来探索。希望这篇文章能为你带来启发,文章所有的实验代码都放到了https://github.com/BBuf/tvm_learn ,感兴趣的可以点个star一起学习(学习TVM的4个月里,这个工程已经收到了快100star了,我很感激)。
BBuf
2021/09/14
9070
可以让深度学习编译器来指导算子优化吗
Go 编译器优化
《从.go 文本文件到可执行文件》一文中,我们简单描述了 Go 编译器的工作流程。本文将继续深入其中的一些代码优化的工作。
gopher云原生
2022/11/22
8410
Go 编译器优化
如何通过Nginx配置来优化你的网络请求
为什么需要优化 缓存可以减少冗余的数据传输。节省了网络带宽,从而更快的加载页面。 缓存降低了服务器的要求,从而服务器更快的响应。 那么我们使用缓存,缓存的资源文件到什么地方去了呢?首先来看下有哪几种缓
兔云小新LM
2019/12/05
1.5K0
什么是热点代码,Java编译器如何利用它来实现性能优化
通过以上优化,JIT编译器实现了即时编译和动态优化,使得热点代码的执行速度大大提高,从而提升整个应用程序的性能。这种优化技术在现代的Java虚拟机中得到了广泛应用。
一凡sir
2023/08/19
6980
什么是热点代码,Java编译器如何利用它来实现性能优化
如何优化循环
有时候你会遇到循环,或者递归函数,它们会花费很长的执行时间,可能是你的产品的瓶颈。在你尝试使循环变得快一点之前,花几分钟考虑是否有可能把它整个移除掉,有没有一个不同的算法?你可以在计算时做一些其他的事情吗?如果你不能找到一个方法去绕开它,你可以优化这个循环了。这是很简单的,move stuff out。最后,这不仅需要智慧而且需要理解每一种语句和表达式的开销。这里是一些建议:
硬核编程
2019/09/17
9610
Java编译器优化技术
内联是一种常见的编译器优化技术,它用于将方法调用转换为直接插入方法体的代码。这样做可以减少方法调用的开销,提高程序的执行效率。内联可以减少函数调用的开销,但也会增加代码的长度。
一凡sir
2023/08/20
4170
Java编译器优化技术
【动手学深度学习笔记】之通过丢弃法缓解过拟合问题
除了上一篇文章介绍的权重衰减法,深度学习常用的缓解过拟合问题的方法还有丢弃法。本文介绍倒置丢弃法及其实现。
树枝990
2020/08/19
1K0
优化循环的方法-循环展开
循环展开对于算术运算来说,优化的作用是很大的。我分别对整数运算和浮点数运算作了多次测试,得出表格如下:
谭光志
2020/09/28
9780
如何通过谷歌SEO优化来提高您的网站的流量
如果您经营一个网站,那么您肯定知道流量对网站的重要性。而要吸引更多的访客,SEO是必不可少的一部分。通过谷歌SEO优化,您可以提高您网站的排名,从而获得更多的流量。下面是一些实用的技巧,可以帮助您进行谷歌SEO优化。
用户6439226
2023/03/22
5960
通过防止不必要的重新渲染来优化 React 性能
Re-rendering React components unnecessarily can slow down your app and make the UI feel unresponsive.
小弟调调
2022/11/08
6.2K0
通过防止不必要的重新渲染来优化 React 性能
JVM--循环优化
所谓的循环无关代码(Loop-invariant Code),指的是循环中值不变的表达式。如果能够在不改变程序语义的情况下,将这些循环无关代码提出循环之外,那么程序便可以避免重复执行这些表达式,从而达到性能提升的效果。
终码一生
2022/04/14
6200
JVM--循环优化
嵌套循环的优化
今天拿到这样一个需求:有Map A和Map B,这两个Map都持有着一个同样的key——id,其对应的value可能相同,也可能不相同。现在需要对两个Map中该key对应的value相同的键值对做些特殊的操作。
雨临Lewis
2022/01/11
2.4K0
[技巧篇] 循环代码优化技巧。
「代码优化」应该是我们时刻记在心里的一件事情,从一开始就建立一种正确的编程观念,养成一种好的编程习惯,避免一些低效弱智的做法。
编程文青李狗蛋
2019/07/24
8660
JVM之早期(编译器)优化
JVM的编译器可以分为三个编译器: 1. 前端编译器:把.java转变为.class的过程。如Sun的Javac、Eclipse JDT中的增量式编译器(ECJ)。 2. JIT编译器:把字节码转变为机器码的过程,如HotSpot VM的C1、C2编译器。 3. AOT编译器:静态提前编译器,直接将*.java文件编译本地机器代码的过程。
见得乐
2022/09/08
4110
代码优化之for循环
一言以蔽之:尽量在循环中减少操作。 循环里的操作有哪些? 实例化、调用方法、运算 举例一: int i; int j; int k; //将i j k 放在循环外,减少循环变量实例化次数 for (i = 0; i < 10; i++) for (j = 0; j < 100; j++) for (k = 0; k < 1000; k++)
城市中的游牧民族
2019/02/21
5780
来,通过 Excel 来认识神器——POI
Apache POI - the Java API for Microsoft Documents,顾名思义,Apache的三方包,用来操作微软office文档的,多数时候用来操作excel,所以这里就以excel方面来说明。
Java技术栈
2021/01/08
1.1K0
来,通过 Excel 来认识神器——POI
Java 通过构造函数初始化 Integer 对象的方法将会被丢弃
Deprecated It is rarely appropriate to use this constructor. Use parseInt(String) to convert a string to a int primitive, or use valueOf(String) to convert a string to an Integer object.
HoneyMoose
2022/06/06
7160
Java 通过构造函数初始化 Integer 对象的方法将会被丢弃
性能优化-多层嵌套for循环如何优化
代码示例 package com.cwl.po; /** * @program: cwl-performance-optimization * @description: 测试for循环-嵌套循环 * @author: ChenWenLong * @create: 2019-11-22 11:27 **/ public class TestNestedLoop { // 当需要嵌套循环时 外层循环越小 性能越好 // 例如 10*100*1000 与 1000*100*10
cwl_java
2019/11/29
3.5K0

相似问题

C编译器通过运行它来优化循环

42

如何通过避免循环来优化代码?

20

编译器会通过将条件语句移出循环来优化循环中的条件语句吗?

31

循环编译器优化

51

通过编写循环来优化C中的基本嵌套循环

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文