package com.github.pig.auth; import java.io.IOException; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; class person { public String name; public String age; private hand handhello; public person() { handhello = new hand(this); } public void sayhello() { handhello.Shake(); } public void finalize() { System.out.println("gc person!"); } } class hand { private person per; public hand(person per) { this.per = per; } public void Shake() { System.out.println("Shake!"); } public void finalize() { System.out.println("gc hand!"); } } public class Test { public static void main(String[] args) throws IOException, InterruptedException { Vector<person> v = new Vector<person>(); for (int i = 0; i < 5; i++) { person o = new person(); v.add(o); } v.clear(); System.out.println("clear"); TimeUnit.MILLISECONDS.sleep(1000); System.out.println("gc"); System.gc(); TimeUnit.MILLISECONDS.sleep(1000); System.out.println("内存全部释放"); } }
clear
gc
gc hand!
gc person!
gc hand!
gc person!
gc hand!
gc person!
gc hand!
gc person!
gc hand!
gc person!
内存全部释放