垃圾收算法

1.引用计数法(Reference Counting Collector)

2.tracing算法(Tracing Collector)

3.compacting算法(Compacting Collector)

4.copying算法(Coping Collector)

5。generation算法(Generational Collector)

6.adaptive算法(Adaptive Collector)

一个新的对象被创建,由于它没有使用,所以该对象迅速地变为不可达,程序编译后,执行命令: java -verbosegc TestGC 后结果为:

[Full GC 168K->97K(1984K), 0.0253873 secs]

机器的环境为,Windows 2000 + JDK1.3.1,箭头前后的数据168K和97K分别表示垃圾收集GC前后所有存活对象使用的内存容量,说明有168K-97K=71K的对象容量被回收,括号内的数据1984K为堆内存的总容量,收集所需要的时间是0.0253873秒(这个时间在每次执行的时候会有所不同)。

需要注意的是,调用System.gc()也仅仅是一个请求(建议)。JVM接受这个消息后,并不是立即做垃圾回收,而只是对几个垃圾回收算法做了加权,使垃圾回收操作容易发生,或提早发生,或回收较多而已。

一旦垃圾回收器准备好释放对象占用的存储空间,首先会去调用finalize()方法进行一些必要的清理工作。只有到下一次再进行垃圾回收动作的时候,才会真正释放这个对象所占用的内存空间。

http://blog.csdn.net/zsuguangh/article/details/6429592

看能否对你有用

2014年5月14日 13:36

java 引用被回收_java GC 静态List 如果没有引用会被回收吗相关推荐

  1. java的函数传值_java 函数形参传值和传引用的区别[转]

    java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清. (一)基本数据类型:传值,方法不会改变实参的值. publicclassTestFun { publicstaticvoidt ...

  2. java 父类引用子类对象_java多态,如何理解父类引用指向子类对象

    java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是"向上转型". 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类.我可以通过   C ...

  3. java值传递和引用传递简单_Java里的值传递与“引用传递”——一些想法

    这两天在看Java的时候看到了方法中的值传递与引用传递,对于值传递我们都可以理解,非常的简单,但是对于引用传递,对于我们学过c++的人来说,那可不就来劲了吗,直接写一个函数来用"&& ...

  4. 符号引用,动态链接,静态链接,直接引用的区别

    在类加载的时候会有5部分:加载,验证,准备,解析,初始化 静态链接 在解析的时候将符号引用变为直接引用,该阶段会把一些静态方法比如mian方法 替换为指向数据所存内存的指针或者句柄等(直接引用) 动态 ...

  5. Java垃圾回收(GC)、找垃圾的方式、GC Root、GC停顿、引用、垃圾收集算法、收集器、GC日志、安全点、安全区域

    1.垃圾回收 1.1概念 在Java语言中,垃圾回收(Garbage Collection,GC)是一个非常重要的概念. 它的主要作用是回收程序中不再被使用的内存,Java提供的GC功能可以自动监测对 ...

  6. java gc回收算法_Java GC回收算法-判定一个对象是否可以回收

    开源推荐 推荐一款一站式性能监控工具(开源项目) Pepper-Metrics是跟一位同事一起开发的开源组件,主要功能是通过比较轻量的方式与常用开源组件(jedis/mybatis/motan/dub ...

  7. java 静态数组 垃圾回收_java垃圾回收

    参考文献: 1.垃圾收集算法的核心思想 Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象.该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引 ...

  8. java gc会回收类么_Java GC 垃圾回收机制

    一.Java GC是什么? Java垃圾回收是对JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,自动的回收内存,永不停息(Nerver ...

  9. java对象什么时候回收_Java对象的生命周期与垃圾回收以及四种引用

    创建对象的方式用new语句创建对象. 使用反射,调用java.lang.Class或java.lang.reflect.Constructor的newInstance()实例方法. 调用对象的clon ...

最新文章

  1. Mysql学习总结(11)——MySql存储过程与函数
  2. LeetCode 454 4Sum II(哈希法)
  3. TraceRoute原理
  4. http2.0 的时代来了
  5. 再见 Typora,这款 Markdown 编辑器开源又免费!
  6. 现代软件工程 作业 最后一周总结
  7. java接口+Java支持多继承吗?
  8. 前台性能和服务器性能是什么,前端性能优化指南[2]--什么是Web性能?
  9. Jetty 和tomcat 比较研究初探
  10. 了解第三方授权OAuth
  11. 技术栈是什么_我从找不到实习到拿大厂offer经历了什么?
  12. 毕设题目:Matlab图像修复
  13. 一、操作系统的基本概念
  14. html无法显示echarts地图,pyecharts 地图不显示问题
  15. 工程项目管理系统源码
  16. 如何将瀚高数据库单机数据导入HGDW
  17. Ubuntu Desktop 22.04 LTS系统(树莓派4B)配置系统输入法
  18. MapGuide 和 Google Map
  19. Django使用旧有的数据库
  20. mysql 查询一个订单下多个商品_如何商品信息多个sql查询搜索

热门文章

  1. 文档基本结构标签的作用
  2. 编写高质量代码改善C#程序的157个建议——建议130:以复数命名枚举类型,以单数命名枚举元素...
  3. Hadoop源代码分析(二)
  4. HDOJ-1257 最少拦截系统
  5. c语言 用一维数组存储二叉树,用一维数组存储二叉树时,总是以前序遍历顺序存储结点。( ? )...
  6. 自动产生fsm代码的工具_代码自动生成工具
  7. sql查询php,SQL查询或PHP?
  8. java创建对象过七夕,想 new 个对象过七夕,她却抛了异常
  9. mysql 5.5半同步复制_(5.5)mysql高可用系列——MySQL半同步复制(实践)
  10. webgl 游戏_如何选择 WebGL 框架和引擎?