文章詳情頁(yè)
Effective java學(xué)習(xí)筆記5:消除對(duì)過(guò)期對(duì)象的引用
瀏覽:45日期:2024-06-18 15:35:00
內(nèi)容: Java比c++方便的一點(diǎn)就是java有自己的垃圾收集機(jī)制。可以自動(dòng)幫你收集垃圾。但是,這并非意味著使用java我們就不需要考慮內(nèi)存管理了。這一點(diǎn)相信很多java程序員都是知道的,就是當(dāng)一個(gè)對(duì)象我們決定不再使用的時(shí)候,最好可以手動(dòng)設(shè)置它為null。特別是這個(gè)object比較耗費(fèi)資源的時(shí)候。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
標(biāo)簽:
Java
上一條:Effective java學(xué)習(xí)筆記6:避免使用finalizer()函數(shù)下一條:Effective java學(xué)習(xí)筆記4:避免創(chuàng)建重復(fù)對(duì)象
相關(guān)文章:
1. ASP.NET堆和棧三之引用類型對(duì)象拷貝和內(nèi)存分配2. Vue 使用iframe引用html頁(yè)面實(shí)現(xiàn)vue和html頁(yè)面方法的調(diào)用操作3. IDEA一鍵完成格式化、去除無(wú)用引用、編譯的操作4. JS解決 Array.fill()參數(shù)為對(duì)象指向同一個(gè)引用地址的問(wèn)題5. IBM發(fā)布AUS: 消除你Java程序中脆弱的API6. js在HTML的三種引用方式詳解7. 解決vue項(xiàng)目中某一頁(yè)面不想引用公共組件app.vue的問(wèn)題8. JS數(shù)據(jù)類型(基本數(shù)據(jù)類型、引用數(shù)據(jù)類型)及堆和棧的區(qū)別分析9. 使用Python-OpenCV消除圖像中孤立的小區(qū)域操作10. python閉包與引用以及需要注意的陷阱
排行榜
