Java——垃圾回收机制

来源:互联网 发布:三年级数学算法 编辑:程序博客网 时间:2024/06/05 20:12
 /* JVM(java虚拟机)是不是多线程程序? 至少有一个负责程序正常执行的线程,也就是执行main函数中的代码----主线程 还得有一个负责垃圾回收的线程,也就是执行finalize函数中的代码----垃圾回收线程任务:每个线程需要执行的代码      任务代码都有其存储位置      主线程的任务代码在main函数中      垃圾回收线程的任务代码在finalize函数中线程是随着任务的存在而存在,随着任务的结束而消失 */ //每个对象都可以被回收,回收的功能定义在Object中的finalize()方法中 class test1{     //重写Object中回收对象的方法     public void finalize(){         System.out.println("被回收了......");     } } class test{     public static void main(String[] args){//主线程         new test1();//这三个对象都是匿名对象,创建完没有引用,直接就是垃圾         new test1();//需要执行垃圾回收的线程回收这三个对象         new test1();         //多线程程序每次运行的结果是不一样的,因为线程在争抢CPU         //这就是多线程程序的随机性         System.gc();//主线程让垃圾回收机制去执行,这时有两个线程,主线程和垃圾回收线程         System.out.println("Hello World!");     } }
原创粉丝点击