1. 程式人生 > >(面試題)Java中的記憶體洩露

(面試題)Java中的記憶體洩露

Object o1 = new Object();

Object o2 = o1;

o1 = null; // 這時o1指向的那個物件回收了嗎?沒有,因為它還被o2引用著

o2 = null; // 這樣才能回收

實際應用中,只要o2的作用域很小,不執行o2=null也是沒有問題的,因為只要o2過了它的生存期,它指向的物件就能被回收。

結論是,作用域越大的變數,越要引起重視,因為它可能佔用著某些物件引用而導致物件不能被回收。換句話說,儘可能地縮小變數的作用域——這也是你在Java中關於記憶體方面能做的唯一努力了。---引用別人的