?????????????????????Щ???Java?????????????????????????????????????“???????????ЩJava?е?????????”??????????????????“?????????????????й???”????????????????????????????????????????????????
????????????Υ??????????????????20??????????5????????????????????????У??????????????????????????????????????????????????????????????????????????????У????????????Щ?????????????????????????“??????????”??????????????????????????????????????????????????????????????????????????????????????????7??? Java 1.2??????????????
?????e???????????????????????????????÷???????????????????????????????????????????????????????????????á???????????Щ????????????????????????????????????
?????????(Strong Reference)
?????????????????????????????д??????
????StringBuffer buffer = new StringBuffer();
???????洴???????StringBuffer????????????????????????浽????buffer?С??????????С??????????????????????????????????????????????????????????Strong??????????????????????????????????????????????????????????????????????(Strongly reachable)??????????????????????????????????????????????????????????
??????????????????
?????????????????????????ó???????????е??????????????????????????????final????????????????????Щ????????????????δ??????????????????????????????(Interface)???????????????????????????Widget??????????????????У?????????????μ?????
????????????????????Widget??????????????????????? ?????????????????????????к??????????Widget??????????????????????????????????????????????????????????????????У?HashMap???????????????????
????serialNumberMap.put(widget?? widgetSerialNumber);
????????濴??????????????widget?????????ú??п??????????????????????????widget???к??????????????y?????????map???????????????????????????????????й????????????????????????????????????widgets????????Ч??????????????Щ???????????????????????????????????????????????????????????????????????????????????????????????????????Java?????
??????????????????????????????棬????????????????????????檔??????????????????????????????????????????????????????棬????????????????????????????????????????????????????????????????
???????汻???????????????????μ?????Щ?????????????????????????л?????????????????????????????????á?????????????????????????棬?????????????????????????????????????????????????????????????????????????????????α???????????????????????????????????????????????????????
??????????(Weak Reference)
?????????ü????????????????????????????????????á????WeakReference????????????????????????????????????????????????????????????????????
????WeakReference<Widget> weakWidget = new WeakReference<Widget>(widget);
???????weakWidget.get()???????????Widget????????????ò????赲??????????????????????????????κ???????widget??????????get???????null??
?????????????widget?????????????????????????Java?????WeakHashMap??WeakHashMap??HashMap?????????????????????????????!!!?????WeakReference???á???WeakHashMap???????????????????????????????????????????????????治?????Widget???????????????????WeakHashMap??????????HashMap????Map??