Java collections小知识收集
来源:互联网 发布:淘宝二级页面打不开 编辑:程序博客网 时间:2024/06/05 04:42
1. 避免内存泄露:手动赋null
ArrayList中很多地方都利用手动赋null来让GC对对象进行回收,避免内存泄露,下面是remove方法的一个例子:
public E remove(int index) { rangeCheck(index); modCount++; E oldValue = elementData(index); int numMoved = size - index - 1; if (numMoved > 0) System.arraycopy(elementData, index+1, elementData, index, numMoved); elementData[--size] = null; // clear to let GC do its work return oldValue; }
这个在collection中很常见,注释为// clear to let GC do its work、// help GC。。。
2. 将int数转换为2的幂
private void allocateElements(int numElements) { int initialCapacity = MIN_INITIAL_CAPACITY; // Find the best power of two to hold elements. // Tests "<=" because arrays aren't kept full. if (numElements >= initialCapacity) { initialCapacity = numElements; initialCapacity |= (initialCapacity >>> 1); initialCapacity |= (initialCapacity >>> 2); initialCapacity |= (initialCapacity >>> 4); initialCapacity |= (initialCapacity >>> 8); initialCapacity |= (initialCapacity >>> 16); initialCapacity++; if (initialCapacity < 0) // Too many elements, must back off initialCapacity >>>= 1;// Good luck allocating 2 ^ 30 elements } elements = new Object[initialCapacity]; }
0 0
- Java collections小知识收集
- Oracle小知识收集
- 收集小知识 持续更新...
- linux 小知识闲暇收集
- Objective-C小知识收集
- Java的知识收集
- java开发小收集
- VC小知识总结!(精品收集)
- VC小知识总结!(精品收集)
- VC小知识总结!(精品收集)
- 小知识收集-IDEA的使用
- java 泛型知识 收集
- Java知识图谱收集整理
- Java知识图谱收集整理
- Java知识图谱收集整理
- Java知识图谱收集整理
- Java知识图谱收集整理
- Java知识图谱收集整理
- my.cnf
- 冗余 自动化 安全(优秀)
- 2小时玩转python基础(上)
- 漫谈C指针第四讲---指针与数组
- Navicat访问MySQL出现1044/1045错误的解决方法
- Java collections小知识收集
- iOS 关于UICollectionView的cell重用问题
- iOS资料大全收集
- 活该你单身......都好好单着吧
- HDU 1695 GCD(欧拉函数+容斥原理)
- php学习--3 流程控制语句,字符串操作
- phpstorm 8.x注册码
- HDU5011-Game-西安赛区网络赛-博弈论-水题
- 2.1.3 Debugging of Shaders (about vertex input parameters) 着色器的调试(关于顶点输入参数)