????????????????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;
????}
???????????浣玱bject1??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????效??????????