????JVM  ????????????????????????????????????java?????????????????????????????????????????С??????????????????????JVM?????????JVM???OutOfMemory???
?????????????????????JVM????????????????????????????????????????н??????????????????????????????????????????檔???????????????JDK1.2 ?????  java.lang.ref????
??????????strong reference??
?????????? Java ?????У????????????????strong reference?????? Date date = newDate()??date  ??????????????á?
???????????????????????е?????????????????£?????????ж?????????????????????????????????????????е??????
??????????? A ?а???????????? B ??????á???????????£????? B  ??????????????? A??
??????????? A ???????????? B ????????? null  ??????????е????? A ????????????????? B  ??????????????????????????????????????
???????????soft  reference??
???????????soft  reference????????????????????????SoftReference???????
??????????????????????????????????е???Щ???????????????????治????????????????????????JVM?е???治???????????????????????  Щ????????????????????????????????????Щ?????????滹??????????OutOfMemory?????????ú????????????檔??????治???????????е???????????????????????????????????????ó???????????????????????????????С????????д???????????????????  ??????????????????????????????????????治??????????????????????????????????????????????????????????????Щ??檔
import java.lang.ref.SoftReference;
public class ImageData {
private String path;
private SoftReference<byte[]> dataRef;
public ImageData(String path) {
this.path = path;
dataRef = new SoftReference<byte[]>(new byte[0]);
}
private byte[] readImage() {
return new byte[1024 * 1024]; // ??????????????
}
public byte[] getData() {
byte[] dataArray = dataRef.get();
if (dataArray == null || dataArray.length == 0) {
dataArray = readImage();
dataRef = new SoftReference<byte[]>(dataArray);
}
return dataArray;
}
}
??????????????????????????  -Xmx  ?????????JVM???????檔?????????????????????????????????  get????????????????????????????????????????????????