文章详情页
Effective java学习笔记5:消除对过期对象的引用
浏览:154日期: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
相关文章:
1. 解决android studio引用远程仓库下载慢(JCenter下载慢)2. 解决django的template中如果无法引用MEDIA_URL问题3. Vue 使用iframe引用html页面实现vue和html页面方法的调用操作4. Python re.sub 反向引用的实现5. python pandas,DF.groupby()。agg(),agg()中的列引用6. 使用Python-OpenCV消除图像中孤立的小区域操作7. 详解JAVA 弱引用8. 在vue中封装方法以及多处引用该方法详解9. Java返回可变引用对象问题整理10. spring源码学习之bean的初始化以及循环引用
排行榜

网公网安备