文章詳情頁
Effective java學習筆記5:消除對過期對象的引用
瀏覽:38日期:2024-06-18 15:35:00
內容: Java比c++方便的一點就是java有自己的垃圾收集機制。可以自動幫你收集垃圾。但是,這并非意味著使用java我們就不需要考慮內存管理了。這一點相信很多java程序員都是知道的,就是當一個對象我們決定不再使用的時候,最好可以手動設置它為null。特別是這個object比較耗費資源的時候。Effective java上的例子:import java.util.*;// Can you spot the 'memory leak'?public class Stack { private Object[] elements; private int size = 0; public Stack(int initialCapacity) { this.elements = new Object[initialCapacity]; } public void push(Object e) { ensureCapacity(); elements[size++] = e; } public Object pop() { if (size==0) throw new EmptyStackException(); Object result = elements[--size]; elements[size] = null; // Eliminate obsolete reference return result; } /** * Ensure space for at least one more element, roughly * doubling the capacity each time the array needs to grow. */ private void ensureCapacity() { if (elements.length == size) { Object[] oldElements = elements; elements = new Object[2 * elements.length + 1]; System.arraycopy(oldElements, 0, elements, 0, size); } } public static void main(String[] args) { Stack s = new Stack(0); for (int i=0; i
標簽:
Java
相關文章:
排行榜