package com.tuanche.sold.activity.remote.service;
class Person {
private String name;
private int age;
private static int gcCount = 0;
private static int objCount = 0;
public Person() {
}
public Person(String name) {
this.name = name;
}
public Person(String name,int age) {
this(name);
this.age = age;
}
//每个类里面都有finalize方法,和构造方法功能相反,一个是对象产生时调用,一个是对象消亡时调用
public void finalize() {
gcCount++;
System.out.println("开始清理对象...");
}
public static void main(String[] args) {
for(int i = 0; i < 10; i ++){
objCount += 3;
System.out.println("object count:"+objCount);
//下面三个对象一产生即成为拉圾
new Person();
new Person();
new Person();
//如果不加上下面这句,以上产生的三个对象虽成为拉圾,但不一定马上就会启用拉圾回收机制把拉圾回收走
//所以就可能看不到 finalize 方法内部执行的效果
System.gc();
}
System.out.println("gc count:"+gcCount);
}
}
class Person {
private String name;
private int age;
private static int gcCount = 0;
private static int objCount = 0;
public Person() {
}
public Person(String name) {
this.name = name;
}
public Person(String name,int age) {
this(name);
this.age = age;
}
//每个类里面都有finalize方法,和构造方法功能相反,一个是对象产生时调用,一个是对象消亡时调用
public void finalize() {
gcCount++;
System.out.println("开始清理对象...");
}
public static void main(String[] args) {
for(int i = 0; i < 10; i ++){
objCount += 3;
System.out.println("object count:"+objCount);
//下面三个对象一产生即成为拉圾
new Person();
new Person();
new Person();
//如果不加上下面这句,以上产生的三个对象虽成为拉圾,但不一定马上就会启用拉圾回收机制把拉圾回收走
//所以就可能看不到 finalize 方法内部执行的效果
System.gc();
}
System.out.println("gc count:"+gcCount);
}
}