java 垃圾回收机制
2016-03-30 23:13
309 查看
垃圾回收机制的目的是用于清除已经不在使用java对象。
找到不再使用的java对象,清除它,使得此空间可以重新存储对象。
垃圾回收机制的实现算法
1:引用计数器
堆中的每个对象都有一个引用计数,(注:这个引用计数存放在堆中),当一个对象创建并且分配给一个引用变量时,这个计数加一。
new Object();时还不会加1,当 Object obj = new Object(); 这个计数才会加1。 而当 obj = null;时 这个计数就会减一。 当计数为0时,那么堆中的这个对象就有可能会java垃圾回收器收集。
优点:交织在程序中执行,不会打断程序的执行,执行效率较快。
缺点:无法检查出循环引用的对象。 A.b=B; B.a=A; A和B的引用都不会为0,即:这两个对象永远无法被回收。
2:未完待续
找到不再使用的java对象,清除它,使得此空间可以重新存储对象。
垃圾回收机制的实现算法
1:引用计数器
堆中的每个对象都有一个引用计数,(注:这个引用计数存放在堆中),当一个对象创建并且分配给一个引用变量时,这个计数加一。
new Object();时还不会加1,当 Object obj = new Object(); 这个计数才会加1。 而当 obj = null;时 这个计数就会减一。 当计数为0时,那么堆中的这个对象就有可能会java垃圾回收器收集。
优点:交织在程序中执行,不会打断程序的执行,执行效率较快。
缺点:无法检查出循环引用的对象。 A.b=B; B.a=A; A和B的引用都不会为0,即:这两个对象永远无法被回收。
2:未完待续
相关文章推荐
- java SE基础(Map接口及其实现)
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- spring data jpa 操作JPA 2.0原生api
- Java 多线程实现的三种方法,附两个线程执行不同的输出
- Java SE 疑难点记录
- Java 1.7 ReentrantReadWriteLock源码解析
- Java并发编程:阻塞队列
- java学习之迭代器浅谈
- Struts1与Struts2原理 区别 详解 汇总
- 学习javaEE每一天2016.3.30
- JavaMail发送邮件
- java获取当前时间的年周月季度等的开始结束时间
- java读取配置中文乱码
- 在Struts2中使用ValueStack、ActionContext、ServletContext、request、session等
- java通过JDBC链接SQLServer2012
- #java读书笔记#多线程3
- JAVA中的继承
- RESTful Web Services之Struts2 REST
- Spring启动容器初始化Listener
- openssl和java关于rsa的交互