zoukankan      html  css  js  c++  java
  • Java基础之垃圾回收

     1 /**
     2  * 对象在没有任何引用可以到达时,生命周期结束,成为垃圾。
     3  * 所有对象在被回收之前都会自动调用finalize()方法。
     4  * **************************************************
     5  * 一个对象在成为垃圾之后不会被马上回收,
     6  * JVM会检测内存中的垃圾堆积到一定程度时才会回收,
     7  * 如果我们不想等到这个时候才回收,
     8  * 可以使用System.gc()方法来通知虚拟机回收垃圾。
     9  * 调用该方法之后JVM会开启新线程做处理垃圾的工作,这需要一定时间。
    10  */
    11 public class GcDemo {
    12 
    13     public static void main(String[] args) throws Exception {
    14 
    15         for(int i = 0; i < 1000; i ++){
    16             new Person();    //创建一个对象之后,没有使用成为垃圾
    17         }
    18         System.out.println("回收之前: " + Person.count);
    19         System.gc();    //通知虚拟机进行垃圾回收
    20         /*
    21          * 调用System.gc()之后JVM会开启新线程做处理垃圾的工作,需要一定的时间,让其休眠几秒之后,再查看垃圾回收的效果
    22          * 垃圾多回收需要的时间也会长
    23          */
    24         Thread.sleep(1000);    
    25         System.out.println("回收之后: " + Person.count);
    26     }
    27 
    28 }
    29 
    30 class Person{
    31     //定义一个count来计数,查看回收之前和回收之后
    32     public static int count;
    33     
    34     public Person(){
    35         count ++;    //每创建一个对象count加加
    36     }
    37     //所有对象在被回收之前都会自动调用finalize()方法
    38     public void finalize(){
    39         count --; //回收一个垃圾减掉一个
    40     }
    41 }
  • 相关阅读:
    面对复杂业务,if-else coder 如何升级?
    为什么StringBuilder是线程不安全的?
    Hashmap中文解释
    mysql 5.6 5.7 8.0新特性
    数据增强,扩充数据集
    神经网络参数优化器
    缓解过拟合
    损失函数
    神经网络的复杂度&指数衰减学习率&激活函数
    GRU&实例股价预测
  • 原文地址:https://www.cnblogs.com/zunpeng/p/3757256.html
Copyright © 2011-2022 走看看