对象引用与垃圾收集.ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
J2SE 1.4 主题 对象引用与垃圾收集 异常处理 JAVA I/O 正则表达式 利用JAVA进行XML编程 嵌套式类 对象的封装与继承 抽象类与接口 垃圾收集 垃圾收集器的工作原理是识别程序中不再使用的对象,并且回收其内存。 垃圾收集 J2SE1.4采用的代间收集策略 垃圾收集 JDK1.4的垃圾收集器 复制收集器、标记整理收集器、增量式收集器、并行复制收集器、并行清除(scavenging)收集器和并发标记-清除收集器。 垃圾收集 其他收集选项 垃圾收集 观察垃圾收集运行状况 有很多办法来监听垃圾回收器的活动。可用Xverbose:gc选项运行JVM,然后观察输出结果一段时间。 [memory] 13.009-13.130: GC 65536K-16788K (65536K), 121.000 ms 垃圾收集 微调垃圾收集选项 最简单的垃圾收集微调就是扩大最大堆的大小( -Xmx )。随着堆的增大,复制收集会变得更有效,所以在增大堆时,您就减少了每个对象的收集成本。除了增加最大堆的大小,还可以用选项 -XX:NewRatio 增加分配给年轻代的空间份额。也可以用 -Xmn 选项显式指定年轻代的大小。 引用对象 从JDK1.2开引入了一个引用对象应用程序接口API允许程序维持一个特别的到对象的引用,这样程序能够通过这一有限的途径和垃圾收集器进行交互。 加入引用对象之后的引用与常规引用的区别在于,引用对象中的引用专门由内存管理器来处理。引用对象封装了其它一些对象的引用,我们称之为指示对象。在引用对象创建的同时,也就定义了该引用对象的指示对象。 Heap中的引用对象Reference Objects Reference Objects 类层次 对象的引用层次 根据对象的可获取程度:强获取、次获取、弱获取、虚获取 根据应用程序要求,对象可以是强引用(strong references)、次引用(soft references)、弱引用(weak references)、虚引用(phantom references)的任意组合。 强引用( strong reference ) JVM内存管理器从引用集合出发遍寻堆中所有到对象的路径。当到达某对象的任意路径都不含有引用对象时,则称该对象具有强获取能力。该对象为强引用对象 次引用(soft reference ) 次引用(soft reference ) public class DisplayImage extends Applet { SoftReference sr = null; public void init() { System.out.println(Initializing); } public void paint(Graphics g) { Image im = ( sr == null) ? null : (Image)( sr.get()); if (im == null) { System.out.println(Fetching image); im = getImage(getCodeBase(),truck1.gif); sr = new SoftReference(im); } System.out.println(Painting); g.drawImage(im, 25, 25, this); im = null; } public void start() {} public void stop() {}; } } 次引用( Soft Reference ) 所有Soft Reference到的对象保证会在java虚拟机发生OutOfMemoryError 前被清除。SoftReference 常被用来实现 object-cache (memory-sensitive caches)之用的。 被 Soft Reference 指到的对象,即使没有任何 Direct Reference,也不会被清除。一直要到 JVM 内存不足时且 没有 Direct Reference 时才会清除,如此一来 SoftReference 不但可以把对象 cache 起来,也不会造成内存不足的错误 (OutOfMemoryError)。 弱引用(weak r

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档