java内存管理的学习笔记

来源:互联网 发布:python数据采集 pdf 编辑:程序博客网 时间:2024/04/30 16:14
现行的垃圾回收机制:分代的方式采用不同的垃圾回收设计——把堆内存分成三代 
Young 采用复制算法,遍历算法那些处于可到达状态的对象 经过时间考验提升为old代
Old 执行频率不需要太高,需要更长的时间进行垃圾回收
Permanent  主要用于装载Class、方法等信息

常见的垃圾回收器
1、串行的垃圾回收
2、并行的垃圾回收
3、并行压缩回收器
4、并发标示清理垃圾回收器

内存管理的小技巧
1、尽量使用直接量
用string s = "hello" //JVM的字符串缓存池会缓存hello
不用 string s = new String("hello"); //除了缓存字符串意外 s引用的String对象底层还包含一个char[]数组,一次存放 h e l l o
2、使用StringBuilder和StringBuffer进行字符串的连接
3、尽早释放无用对象的引用
public void info(){
    Object o = new Object();
    System.out.println(o.toString());
    o = null;//释放引用
}
4、尽量少使用静态变量
最坏的是某个对象被static变量所引用
5、避免在经常调用的方法或者循环中创建对象
6、缓存经常使用的对象
7、尽量少使用finalize方法
8、考虑采用softreference
原创粉丝点击