????????????????Garbage Collection??GC???????????????????????Java???????????Java?У??????????????????涯???????????????????????ж???????JVM?????????????壬????????????????????????????Java?У???????????????“????”????????Щ?????????????????????????????????л??????????????????????????У?????Щ??????????????????????????????????Щ????????????????????
?????.???????????????“????”??
??????.??????????????
??????.??????????????

????????в????????????????????????????м???
?????.???????????????“????”??
?????????С???????????????????????????????????????“????”???????????????????????????????????????乩?μ???????????????????????????????????“????”??—????????????ж???????????????????
??????java????????????????????й??????????????????????????????????????С?????????????????????????ü??????ж???????????????????????????????????????????κ?????????????????????????????????????????????????????????????????????????????????????????ü???????
???????????????????????????Ч??????????????????????????????????Java?в???в???????????Python??????????ü?????????????????δ???
????public class Main {
????public static void main(String[] args) {
????MyObject object1 = new MyObject();
????MyObject object2 = new MyObject();
????object1.object = object2;
????object2.object = object1;
????object1 = null;
????object2 = null;
????}
????}
????class MyObject{
????public Object object = null;
????}
???????????佫object1??object2????null??????object1??object2???????????????????????????????????????????????????????????ü????????0?????????????????????????????
??????????????????Java?в???? ?????????????÷???????????????????е?“GC Roots”????????????????????????“GC Roots”??????????????п??·????????????????????????????????ж?????????????????????????????ж????????????????????????????????????α????????????????α?????????????????????????????????????????????????????????
?????????????????????????β?????????????п??ú?????????????λ????????????????????
???????????????????
????Object aobj = new Object ( ) ;
????Object bobj = new Object ( ) ;
????Object cobj = new Object ( ) ;
????aobj = bobj;
????aobj = cobj;
????cobj = null;
????aobj = null;
??????????п??????????????????????????7?е????????ж????????????????????????????????????
???????????????
????String str = new String("hello");
????SoftReference<String> sr = new SoftReference<String>(new String("java"));
????WeakReference<String> wr = new WeakReference<String>(new String("world"));
?????????????????String????????????????2????3????2??????治?????????String?????ж????????????3?????????????String???????ж??????????
??????????????????????????????????ж????????????????
????1??????????????????null???????????????????????????μ????????????????
????Object obj = new Object();
????obj = null;
????Object obj1 = new Object();
????Object obj2 = new Object();
????obj1 = obj2;
????2????????????????????????????δ???
????void fun() {
????.....
????for(int i=0;i<10;i++) {
????Object obj = new Object();
????System.out.println(obj.getClass());
????}
????}
???????????????Σ??????Object?????????????????
????3??????????????????????????磺
????WeakReference<String> wr = new WeakReference<String>(new String("world"));
??????.??????????????
?????????????Щ????????????????????????????????????????????????????????????漰??????????????θ?Ч??????????????????Java??????淶????ж?????????????????????????漲????????????????????????ò???????????????????????????????????????????????????????????
????1.Mark-Sweep?????-???????
????????????????????????????????????????????????????????????????????-??????????????Σ?????κ??????Ρ?????ε???????????????????????????????????????????????????????????????????????

????????п??????????????-?????????????????????????????????????????????????????????????????????o?????????????????????????????????????????????μ?????????????????
????2.Copying?????????
?????????Mark-Sweep????????Copying???????????????????????水???????????С???????飬??????????е???顣????????????????????????????????????????????棬???????????????????????????????????????????????????????????????????????

??????????????????????и?Ч???????????????????????????????????????????????????????????????????????????
???????????Copying????Ч??????????????????к?????????????????????Copying????Ч??????????