???Java?е????????Weak Reference??
???????????? ???????[ 2016/6/30 11:48:31 ] ??????????????????? Java
??????????3????What??Why??How??????????????Java?е???????????Java???????????塢??????ó???????÷????????????????????????????????????????????????????????????????лл??????
????1. What——???????????
????Java?е??????t????????java.lang.ref.WeakReference<T>????????????????1??????????????????
???????????????????????????????????????????????????????ó?????????????淶???(canonicalizing mappings?????????????
????????????????????????????????????????????(weakly reachable)????????????????????????????????????????????????????????????????????????????????????????????????????(finalizable)????????????????????????????????????????????Щ????????????÷??????????????????????????????(Reference Queue)?С?
??????????Java?д??????????????????????????????????á??????á??????á??????á???????????????3???????????????????????
??????????Strong Reference??????????????new?????????????????????????????????????????????????????????????????????(strongly reachable)???????????????
???????????Soft Reference?????????ú????????????????????????????????????????????????????????????????????????????????治???????????????????????????????“?”?Щ
???????????Phantom Reference????????????Java????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????У?????????????????????????
????2. Why——?????????????
???????????????????????????Product???????????????????????????????????????????????????????????????????????????HashMap<Product?? Integer>???????????????????????????????????Product?????????????У???????????????????????????????????????productA????????????productA????null????????productA???????Product?????????????????????????HashMap???????????????????£????????????????????Product??????????????????????null???????????????????????HashMap??????????“??HashMap?????????????????”????????????????????????????????????????????????HashMap?е?key????????Product?????????£???????????Product????????????????????????????壬???????????????????????????????????????????Product???????????????????HashMap?е?key???????
????3. How——?????????????
????????????????????????????????????Product???????????????????HashMap??key?????????????????????????
????productA = new Product(...);
????WeakReference<Product> weakProductA = new WeakReference<>(productA);
??????????????????weakProductA?????Product????productA???????????????weakProduct???????????Product????productA??????????????????????
????Product product = weakProductA.get();
???????????????????????Java????????????WeakHashMap????ú??????????????????????????????????????????????????????????productA???null????????????????Product????????????????У????????????Product??????????????????weakProductA???????????????????Product??????????????????????????????????????Product?????漴???????????????????????????????????С?
?????????????????????????????е?????????WeakReference????????????????
????WeakReference(T referent) //????????????????????????
????WeakReference(T referent?? ReferenceQueue<? super T> q) //????????????????????????????????е???????
??????????????????????????????????ReferenceQueue????????????????????????????????????????????????????????????????????????????????????????????????????????????У????????????Щ??????????????????????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11