




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
对象的软、弱和虚引用目录Part01教学目标Part02教学内容Part04巩固提高ContentsPart03教学总结Part01教学目标教学目标知识目标对象的软、弱和虚引用01能力目标能了解软引用的使用能了解弱引用的使用能了解虚引用的使用02Part02教学内容1.对象的引用Java语言对对象的引用有四种方式:StrongReference:强引用SoftReference:软引用PhantomReference:虚引用WeakReference:弱引用2.强引用(StrongReference)这是Java程序中最常见的引用方式。程序创建一个对象,并把这个对象赋值给一个引用变量,程序通过该引用变量来操作实际的对象。当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不可能被系统垃圾回收机制回收。3.软引用(SoftReference)软引用需要通过SoftReference类来实现。软引用通常用于对内存敏感的程序中。对于只有软引用的对象而言,当系统内存空间足够时,它不会被系统回收,程序也可使用该对象。对于只有软引用的对象而言,当系统内存空间不足时,系统可能会回收它。4.弱引用(WeakReference)弱引用需要通过WeakReference类来实现。弱引用与软引用类似,但弱引用的引用级别更低。对于只有弱引用的对象而言,当系统垃圾回收机制运行时,不管系统内存是否足够,总会回收该对象所占用的内存。4.弱引用(WeakReference)示例:弱引用所引用的对象被垃圾回收过程。示例public
classReferenceTest{public
static
voidmain(String[]args)throwsException{//创建一个字符串对象Stringstr=newString("疯狂Java讲义");//创建一个弱引用,让此弱引用引用到"疯狂Java讲义"字符串WeakReferencewr=newWeakReference(str);//切断str引用和"疯狂Java讲义"字符串之间的引用str=null;//取出弱引用所引用的对象,此时输出“疯狂Java讲义”System.out.println(wr.get());//强制垃圾回收System.gc();System.runFinalization();//再次取出弱引用所引用的对象,此时输出“null”System.out.println(wr.get());}}4.弱引用(WeakReference)示例:弱引用所引用的对象被垃圾回收过程。示例1、切断str引用之前2、垃圾回收之前3、垃圾回收执行之后5.虚引用(PhantomReference)虚引用需要通过PhantomReference类来实现。虚引用类似于没有引用。虚引用对对象本身没有太大的影响,对象甚至感觉不到虚引用的存在。虚引用主要用于跟踪对象被垃圾回收的状态,虚引用不能单独使用,虚引用必须和引用队列(ReferenceQueue)联合使用。5.虚引用(PhantomReference)示例:弱引用所引用的对象被垃圾回收过程。示例importjava.lang.ref.ReferenceQueue;public
classPhantomReference{public
static
voidmain(String[]args)throwsException{Stringstr=newString("疯狂Java讲义");//创建一个字符串对象ReferenceQueuerq=newReferenceQueue();//创建一个引用队列//创建一个虚引用,让此虚引用引用到"疯狂Java讲义"字符串java.lang.ref.PhantomReferencepr=
newjava.lang.ref.PhantomReference(str,rq);
str=null;//切断str引用和"疯狂Java讲义"字符串之间的引用//取出虚引用所引用的对象,并不能通过虚引用获取被引用的对象,所以此处输出nullSystem.out.println(pr.get());//强制垃圾回收System.gc();System.runFinalization();//垃圾回收之后,虚引用将被放入引用队列中//取出引用队列中最先进入队列的引用与pr进行比较,结果为trueSystem.out.println(rq.poll()==pr);}}6.引用队列引用队列由java.lang.ref.ReferenceQueue类表示,它用于保存被回收后对象的引用。当联合使用软引用、弱引用和引用队列时,系统在回收被引用的对象之后,将把被回收对象对应的引用添加到关联的引用队列中。虚引用在对象被释放之前,将把它对应的虚应用添加到它关联的引用队列中,这使得可以在对象被回收之前采取行动。7.特殊引用类使用这些引用类可以避免在程序执行期间将对象保留在内存中。如果以软引用、弱引用或虚引用的方式引用对象,垃圾回收器就能够随意地释放对象。如果希望尽可能减小程序在其生命周期中所占用的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关注项目管理考试动态及发展试题及答案
- 2025年银行资格证考试考务安排试题及答案
- 系统化知识点回顾的证券从业资格证试题及答案
- 2025年理财师考试场景分析试题及答案
- 全面分析项目管理考试的各类题型试题及答案
- 微生物检验的标准化流程与试题及答案深入分析
- 2025年注册会计师考试财务管理的现代趋势分析试题及答案
- 黑龙江牡丹江市本年度(2025)小学一年级数学统编版课后作业(下学期)试卷及答案
- 量化分析在理财中的应用试题及答案
- 特许金融分析师考试自我评估试题及答案
- 煤炭供货质量保障措施
- 初高中教育评价体系衔接方案
- 法律法规练习试题及答案
- 医疗AI数据安全-洞察分析
- 领导小组和分工职责
- 电力工程安全教育制度(3篇)
- 2025年高级社会工作师考试社会工作实务(高级)试卷及解答参考
- 我的教师专业成长故事
- 家装木工安全协议书模板
- 艾灸培训初级班
- 算法设计与分析 课件 7.10-回溯法 - 典型应用 - 两种实现 - n皇后问题
评论
0/150
提交评论