安卓Java面试题 161- 170

161. 使用new Message()和obtainMessage两种方式得到Message对象有什么区别 ?
我们在平常使用Handler sendMessage方法的时候都要传递Message参数进去,通常创建Message对象有两种方式,一种就是常用的通过构造函数的方式创建对象, 一种就是通过Handler的obtainMessage了,既然都能new了说明Message的构造函数是public的,那么还来个 obtainMessage干嘛呢?答案就是为了节省内存资源,如果你查看Message的定义的话,会发现它里面有一个next字段,这个字段的属性值 是Message类型的,所以从这种角度看的话Message本身就可以作为链表存在,我们的Message消息池其实就是存储着第一个Message消 息而已,之后的消息都是通过next字段链接到一起的,使用obtainMessage首 先会去查看当前消息池中有没有消息存在,存在的话则直接取到该消息并且将该消息从消息池中删除同时将消息池大小减一即可,也就是将链表长度减一,如果消息 池中不存在消息的话才会通过new Message的方式创建消息出来,我们每次使用完消息之后通过执行Message的recycle会将当前使用过的消息对象添加到消息池中,也就是加入 链表中,当然在加入之前需要将原消息中的内容信息全部置位,这样有效减缓了你频繁通过new Message方式创建消息的内存开销,保证了只有在当前消息池不再存在可用消息的情况下才去创建消息出来,so perfect!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让数据在业务间高效流转,镜舟科技与NineData完成产品兼容互认

近日,镜舟科技与NineData完成产品兼容测试。在经过联合测试后,镜舟科技旗下产品与NineData云原生智能数据管理平台完全兼容,整体运行高效稳定。 镜舟科技致力于帮助中国企业构建卓越的数据分析系统,打造独具竞争力的“数据护城河”…

faust勒索病毒:最新变种[nicetomeetyou@onionmail.org].faust袭击了您的计算机?

导言: 在当今数字时代,网络安全已经成为每个人都需要关注的重要问题。然而,恶意软件的威胁却从未停止过。最近出现的[nicetomeetyouonionmail.org].faust勒索病毒再次提醒我们,安全意识的重要性绝不可忽视。本文将深入介绍.faust…

探索 Spring 框架:企业级应用开发的强大工具

CSDN-个人主页:17_Kevin-CSDN博客 收录专栏:《Java》 目录 一、引言 二、Spring 框架的历史 三、Spring 框架的核心模块 四、Spring 框架的优势 五、Spring 框架的应用场景 六、结论 一、引言 在当今数字化时代,企业级应用开发的需求日…

代码随想录刷题笔记 Day 51 | 单词拆分 No.139 | 多重背包理论基础

文章目录 Day 5101. 单词拆分&#xff08;No. 139&#xff09;<1> 题目<2> 笔记<3> 代码 02. 多重背包理论基础2.1 解题思路2.2 携带矿石资源&#xff08;卡码网No.56&#xff09;<1> 题目<2> 笔记<3> 代码 Day 51 01. 单词拆分&#xff…

python-0002-linux安装pycharm

下载软件包 下载地址&#xff1a;https://download.csdn.net/download/qq_41833259/88944791 安装 # 解压 tar -zxvf 你的软件包 # 进入软件解压后的路径&#xff0c;如解压到了/home/soft/pycharm cd /home/soft/pycharm cd bin # 执行启动命令 sh pycharm.sh # 等待软件启…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的手写数字和符号识别(深度学习训练+UI界面+训练数据集)

摘要&#xff1a;开发手写数字和符号识别对于智能交互系统具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个手写数字和符号识别&#xff0c;并提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5&#xff0c;展示了不同模…

STM32F103 CubeMX 定时器输出PWM控制呼吸灯

STM32F103 CubeMX 定时器输出PWM控制呼吸灯 1. 生成代码1. 1 配置外部时钟&#xff0c;SWD口1.2 配置定时器31.3 配置定时器2 2. 代码编写的部分 使用的cubmx 软件的版本&#xff1a;6.2.0 最新版本 6.10&#xff08;2024年3月11日&#xff09; 1. 生成代码 1. 1 配置外部时钟…

C++ 拷贝构造函数和运算符重载

目录 一. 拷贝构造函数 1. 引入 2. 拷贝构造的概念 3. 浅拷贝 4. 深拷贝 二. C运算符重载 1. 概念 2. 注意事项 3.举例 一. 拷贝构造函数 1. 引入 我们在创建对象时&#xff0c;能不能创建一个与原先对象一模一样的新对象呢&#xff1f;为了解决这个问题&#x…

通过Python pypdf库轻松拆分大型PDF文件

pypdf的历史 pypdf最早可以追溯到2005年开源发布,最早名称是"pyPdf",中间的P是大写的,是一个纯python库,这个库一直持续到2010年的pyPdf1.13最后一个版本! 开源其实是一件非常吃力不讨好的事情,在没有商业化的手段,以及没有额外费用的支持下,很难一直靠爱发…

高性能计算——汇编语言(终章)

汇编语言(终章) 文章目录 汇编语言(终章)机器码布局(Machine Code Layout)CPU前端(CPU Front-End)代码对齐指令缓存不均等分支(Unequal Branches)机器码布局(Machine Code Layout) 计算机工程师喜欢在将CPU的流水线划分为两部分:前端和后端,前段指的是指令从内存…

关于PolarDB粗浅认识

PolarDB简介 目前&#xff08;20240314&#xff09;&#xff0c;PolarDB有两个版本&#xff1a; PolarDB-PG PolarDB PostgreSQL 版&#xff08;PolarDB for PostgreSQL&#xff0c;简称“PolarDB-PG”&#xff09;是阿里云自主研发的云原生关系型数据库产品&#xff0c;100%…

主板维修一般多少钱?电脑主板常见维修方法交换法

修主板一般要多少钱&#xff1f; 下面就让我们一起来了解一下吧。 电脑主板维修价格根据损坏程度不同而不同 1、电容器最容易损坏。 如果只是更换电容的话&#xff0c;大约需要50元左右。 2、如果主板上的电路损坏&#xff0c;面积越大&#xff0c;价格就越贵&#xff0c;可…

css动画和js动画的区别?

CSS 动画和 JavaScript 动画是网页开发中常用的两种动画实现方式&#xff0c;它们各有特点和适用场景&#xff0c;下面是它们之间的一些主要区别&#xff1a; CSS 动画&#xff1a; 声明式&#xff1a;CSS 动画是一种声明式的动画实现方式&#xff0c;通过定义样式规则和过渡效…

一学就会 | ChatGPT提示词-[简历指令库]-有爱AI实战教程(七)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、导读&#xff1a; 在使用 ChatGPT 时&#xff0c;当你给的指令越精确&#xff0c;它的回答会越到位&#xff0c;举例来说&#xff0c;假如你要请它帮忙写文案&#x…

测算土地面积并导出的新方法

让每一个人&#xff0c;都有自己的地图&#xff01; 我们在《如何测量显示多个距离和面积》一文中分享过测量距离和面积的方法&#xff0c;随着最近新版本的上线&#xff0c;该功能又有了新方法。 这里以测算土地面积并导出为例&#xff0c;分享这个新版本中的面积测量与导出…

某年某月第几天(模拟)

时间模板传送带-> 题目描述 定义一个结构体变量&#xff08;包括年、月、日&#xff09;。计算该日在本年中是第几天&#xff0c;注意闰年问题。 输入格式 年月日 输出格式 当年第几天 样例输入 2000 12 31 样例输出 366 #include <iostream> using namespace s…

黑天鹅大事件发生后,财产如何不受损失,fpmarkets一招教你

众所周知一旦行业内发生黑天鹅后&#xff0c;所带来的影响可以颠覆整个行业&#xff0c;再加上爆发的瞬间性对我们危害更大。那么黑天鹅大事件发生后&#xff0c;财产如何不受损失&#xff0c;今天fpmarkets一招教你。 塔勒布在《黑天鹅:极不可能事件的影响》一书中写道&#x…

一条 SQL 更新语句如何执行的

Server 层 存储引擎层 总流程 查询语句 连接器 查询缓存 分析器 优化器 执行器 更新语句 redo log&#xff08;节省的是随机写磁盘的 IO 消耗&#xff08;转成顺序写&#x…

骨传导耳机领头羊——南卡在AWE2024展会上展现强大的创新实力

在2024年的AWE&#xff08;中国家电及消费电子博览会&#xff09;上&#xff0c;南卡凭借其尖端的骨传导耳机技术再次成为业界瞩目的中心。作为骨传导技术的先驱和领航者&#xff0c;南卡不仅展出了其最新的产品&#xff0c;更向世界宣布了其在开放式耳机市场的宏伟蓝图。 南卡…

java零基础入门-Map集合练习(上)

一、教学目标 能够使用HashMap集合实现值为双列集合存放。能够使用HashMap集合实现值为单列集合存放。能够使用HashMap集合实现值为基本数据类型存放。能够使用HashMap集合实现值为对象存放。... 二、HashMap实现自定义元素存放 1、值存放基本数据类型 像这中就非常简单了呀…