付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第页共页2023年java弱引用原理模板不久之前,我面试了一些求职java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些java中得弱引用吗?”,假如面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会根本满意了,我并不期待答复是一篇诘究本末的论文描绘。然而事与愿违,我很吃惊的发现,在将近20多个有着平均5年开发经历和高学历背景的应聘者中,居然只有两个人知道弱引用的存在,但是在这两个人之中只有一个人真正理解这方面的知识。在面试过程中,我还尝试提示一些东西,来看看有没有人突然说一声“原来是这个啊”,结果很是让我绝望。我开场困惑,为什么这块的知识如此不被重视,毕竟弱引用是一个很有用处的特性,况且这个特性已经在7年前java1.2发布时便引入了。好吧,这里我不期待你看完本文之后成为一个弱引用方面的专家,但是我认为至少你应该理解什么是弱引用,如何使用它们,并且什么场景使用。既然它们是一些不知名的概念,我简单就着前面的三个问题来说明一下。强引用就是我们经常使用的引用,其写法如下:stringbufferbuffer=newstringbuffer;上面创立了一个stringbuffer对象,并将这个对象的〔强〕引用存到变量buffer中。是的,就是这个小儿科的操作〔请原谅我这样的说法〕。强引用最重要的就是它可以让引用变得强〔在一个程序里,将一个类设置成不可被扩展是有点不太常见的,当然这个完全可以通过类标记成final实现。或者也可以更加复杂一些,就是通过内部包含了未知数量详细实现的工厂方法返回一个接口(interface)。举个例子,我们想要使用一个叫做widget的类,但是这个类不能被继承,所以无法增加新的功能。但是我们假如想追踪widget对象的额外信息,我们该怎么办?假设我们需要记录每个对象的序列号,但是由于widget类并不包含这个属性,而且也不能扩展导致我们也不能增加这个属性。其实一点问题也没有,hashmap完全可以解决上述的问题。(widget,widgetserialnumber);这外表看上去没有问题,但是widget对象的强引用很有可能会引发问题。我们可以确信当一个widget序列号不需要时,我们应该将这个条目从map中移除。假如我们没有移除的话,可能会导致内存泄露,亦或者我们手动移除时删除了我们正在使用的widgets,会导致有效数据的丧失。其实这些问题很类似,这就是没有垃圾回收机制的语言管理内存时常遇到的问题。但是我们不用去担忧这个问题,因为我们使用的时具有垃圾回收机制的java语言。另一个强引用可能带来的问题就是缓存,尤其是像图片这样的大文件的缓存。假设你有一个程序需要处理用户提供的图片,通常的做法就是做图片数据缓存,因为从磁盘加载图片代价很大,并且同时我们也想防止在内存中同时存在两份一样的图片数据。缓存被设计的目的就是防止我们去再次加载哪些不需要的文件。你会很快发如今缓存中会一直包含一个到已经指向内存中图片数据的引用。使用强引用会强迫图片数据留在内存,这就需要你来决定什么时候图片数据不需要并且手动从缓存中移除,进而可以让垃圾回收器回收。因此你再一次被强迫做垃圾回收器该做的工作,并且人为决定是该清理到哪一个对象。弱引用简单来说就是将对象留在内存的才能不是那么强的引用。使用weakreference,垃圾回收器会帮你来决定引用的对象何时回收并且将对象从内存移除。创立弱引用如下:eakreferenceweakwidget=newweakreference(widget);浅谈理解java中的弱引用11-23java中对象和引用的详细区别10-05java/android引用类型及其使用分析^p12-02浅谈java语言的优点11-14excel表中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年内蒙古自治区网格员招聘考试题库及答案解析
- 2025年成人高考政治试题及参考答案
- 2026 年中国农民丰收节丰收映照国泰民安主题课件
- 2026 年世界地球日人类与自然共生课件
- 2026 年国庆厚植爱国情怀树立民族自豪感自信心课件
- 2026 年不忘国耻砥砺奋进新时代少年教育课件
- 儿童医院护理紧急意外情况应急处理预案培训考试试题及答案
- 内科专业分科考试题目和答案
- 2025年福建省南平市建阳市三年级数学下学期期中检测试题(含答案解析)
- 影视置景制作员操作水平模拟考核试卷含答案
- 2026广东财贸职业学院第一批校编教职工招聘42人考试参考题库及答案解析
- 2026年资产评估师之资产评估基础考前冲刺练习试题及完整答案详解【各地真题】
- 中华人民共和国医师法课件
- 城投公司绩效考核制度
- 《物联网应用基础导论》中职全套教学课件
- 2026年各地中考语文卷【病句修改与文学常识题】汇集附答案解析
- 陕西省专业技术人员继续教育专业课《2023年教育信息化与教师综合素质提升》题库及答案
- 幼儿园中班语言《牵牛花》课件
- 恋爱经济纠纷协议书模板
- 2025秋苏教版(2024)小学科学二年级上册(全册)教学反思
- 《火力发电企业电力监控系统商用密码应用技术要求》
评论
0/150
提交评论