public class GcTest
{public static void main(String[] args){for (int i = 0 ; i < 4; i++){new GcTest();// 下面两行代码的作用完全相同,强制系统进行垃圾回收// System.gc();Runtime.getRuntime().gc();}}public void finalize(){System.out.println("系统正在清理GcTest对象的资源...");}
}

java -verbose:gc GcTest

finalize()方法具有如下4个特点:
        永远不要主动调用某个对象的finalize()方法,该方法交给垃圾回收机制调用。
        finalize()方法何时被调用,是否被调用具有不确定性,不要把finalize()方法当成一定会被执行的方法。
        当JVM执行可恢复对象的finalize()方法时,可能使该对象或系统中其他对象重新变成可达状态。
        当JVM执行finalize()方法时出现异常时,垃圾回收机制不会报告异常,程序继续执行。

public class FinalizeTest
{private static FinalizeTest ft = null;public void info(){System.out.println("测试资源清理的finalize方法");}public static void main(String[] args) throws Exception{// 创建FinalizeTest对象立即进入可恢复状态new FinalizeTest();// 通知系统进行资源回收
//      System.gc();  //①// 强制垃圾回收机制调用可恢复对象的finalize()方法
//      Runtime.getRuntime().runFinalization();   //②System.runFinalization();   //③ft.info();}public void finalize(){// 让tf引用到试图回收的可恢复对象,即可恢复对象重新变成可达ft = this;}
}

java对象的强引用,软引用,弱引用,虚引用

java垃圾回收代码相关推荐

  1. 假期三天,我肝了万字的Java垃圾回收,看完你还敢说不会?

    大家好,我是狂聊,上一篇已经把 Jvm 的运行区数据和类加载机制聊完了. 今天来说说 Java 垃圾回收,高频面试问题. 提纲附上,话不多说,直接干货 1.什么是垃圾回收? 垃圾回收(Garbage ...

  2. java垃圾回收机制_笔记 | Java垃圾回收机制

    本文经授权转载自程序员杂货铺(ID:speakFramework) 垃圾回收 最近上海的小伙伴是不是要被强垃圾分类搞疯了???哈哈哈哈 上海是个走在前列的城市啊,不光骑自行车闯红灯要被罚钱,垃圾不分类 ...

  3. 细述 Java垃圾回收机制→Java Garbage Collection Monitoring and Analysis

    本文非原创,翻译自Java Garbage Collection Monitoring and Analysis 在Java中为对象分配和释放内存空间都是由垃圾回收线程自动执行完成的.和C语言不一样的 ...

  4. Java垃圾回收机制(Garbage Collection)

    引用博客地址:http://www.cnblogs.com/ywl925/p/3925637.html 以下两篇博客综合描述Java垃圾回收机制 第一篇:说的比较多,但是不详细 http://www. ...

  5. java垃圾回收机制串行_Java垃圾回收机制

    Java语言是一门自动内存管理的语言,不再需要的对象可以通过垃圾回收自动进行内存释放. Java运行时内存区域划分 JVM将Java程序运行时内存区域划分成以下几个部分: 程序计数器(Program ...

  6. java垃圾回收根对象_Java垃圾回收怎么理解?

    展开全部 Java的堆是一个运行时数据区,类的实例(对象)从中62616964757a686964616fe58685e5aeb931333339653664分配空间.Java虚拟机(JVM)的堆中储 ...

  7. Java垃圾回收(GC)机制详解

    Java垃圾回收(GC)机制详解 转自:https://www.cnblogs.com/xiaoxi/p/6486852.html 一.为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因 ...

  8. 53.垃圾回收算法的实现原理、启动Java垃圾回收、Java垃圾回收过程、垃圾回收中实例的终结、对象什么时候符合垃圾回收的条件、GC Scope 示例程序、GC OutOfMemoryError的示例

    53.垃圾回收算法的实现原理 53.1.目录 53.2.启动Java垃圾回收 53.3.Java垃圾回收过程 53.4.垃圾回收中实例的终结 53.5.对象什么时候符合垃圾回收的条件? 53.5.1. ...

  9. 36.JVM内存分哪几个区,每个区的作用是什么、如和判断一个对象是否存活、java垃圾回收机制、垃圾收集的方法有哪些、java类加载过程、类加载机制、双亲委派、Minor GC和Major GC

    36.JVM内存分哪几个区,每个区的作用是什么? 37.如和判断一个对象是否存活?(或者GC对象的判定方法) 38.简述java垃圾回收机制? 39.java中垃圾收集的方法有哪些? 40.java类 ...

最新文章

  1. VS2015占内存大吗?_手游越来越占内存,80%的手机安装一个大游戏就满了,厂商肉搏...
  2. import keras 报错 ImportError: cannot import name ‘urlopen‘
  3. (0049)iOS开发之数据精度处理四舍五入问题
  4. Spring配置问题——元素 quot;context:component-scanquot; 的前缀 quot;contextquot; 未绑定...
  5. delphi oracle新建用户,Delphi 中如何用另外一个用户的身份来运行一人程序
  6. 如何更好的利用Node.js的性能极限
  7. The DVMM Lab at Columbia University
  8. nexus 7 arm linux,Nexus 7安装Ubuntu Touch
  9. 30 | 图的表示:如何存储微博、微信等社交网络中的好友关系?
  10. C语言fread和fwrite的用法详解
  11. webserver介绍与实现(利用各模块的封装实现)
  12. 记录一次svn报错:[Previous operation has not finished; run 'cleanup' if it was interrupted] 的排错过程
  13. java版本号分段比较_java比较版本号大小
  14. Excel表中只能选择固定内容
  15. 前台离岗提示语_安全温馨提示语大全.doc
  16. spring mvc前端验证代码生成器
  17. (echarts)引入折线图
  18. 淘宝api的商品详情是指什么意思?
  19. B/S 系统界面设计规范
  20. SAP学习之配置——BOM用途

热门文章

  1. 逆向编程与反汇编的区别
  2. C语言第八次上机实验
  3. L1和L2 复习问题
  4. sql注入-简要SQL注入
  5. 怎么把java源代码封装,如何把JAVA程序封装成EXE文件
  6. WPS如何并排放置两张图片_WPS表格:如何批量将所有图片大小修改成一致?
  7. opencv、opencv_contrib及cuda联合编译详细教程
  8. 【HTML】网页的基本结构
  9. 利用Max ,Break,AO贴图
  10. ps怎么给图片加透明边框