這段時間重構專案,把以前的**一點點拿出來看, 還是很發現了幾個問題. 其中記憶體洩露尤其隱蔽.這裡給出乙個例子:
定義類:
package com.hintsoft.test;
public class systemobj
}public void test()
}package com.hintsoft.test;
public class objectsta
string dd = null;
}然後在某個業務中反覆呼叫:
systemobj sys = new systemobj();
sys.test();
使用jprofile則會發現systemobj例項隨著呼叫次數**,且不會**。只有通過強制gc才能**。
因此,在會使用new 構造的物件內部引用靜態類要慎重,避免出現如上的記憶體洩露。
Java 模仿 C 字典 一例
list orderstatuslist new arraylist orderstatuslist.add new abstractmap.entry 1 已下單 orderstatuslist.add new abstractmap.entry 2 已分配客服 orderstatuslist.a...
Java 執行緒內 遞迴 Bug 一例
乙個執行緒的run方法裡使用遞迴方法,出了bug。private boolean ispass string creationid else thread.sleep 1000 60 falg catch interruptedexception e ispass creationid else r...
java 記憶體溢位與記憶體洩露
記憶體溢位 out of memory 是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory 比如申請了乙個integer,但給它存了long才能存下的數,那就是記憶體溢位。記憶體洩露 memory leak 是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記...