Java内存管理的小技巧

来源:互联网 发布:如何在淘宝上投诉卖家 编辑:程序博客网 时间:2024/04/30 19:26
1.尽量使用直接量
    当需要使用字符串,还有Byte,Short,Long,Float,Double,Boolean,Character包装类的实例时,程序不应该采用New的方式来创建对象,而应该直接采用直接量来创建它们,程序需要“hello”字符串时,应该采用String str=“hello”;如果以上述方式创建字符串,JVM的字符串缓存池会缓存这个字符串。而用String str=new String("hello");此程序同样在字符串缓存池缓存这个hello,除此之外str所引用的String对象还包含一个char[]数组,这个char[]字符依次存放h、e、l、l、o等字符。

2.使用StringBuilder 和 StringBuffer进行字符串连接
String代表字符序列不可变的字符串,而StringBuilder和StringBuffer都代表字符序列可变的字符串。如果程序使用多个String对象进行字符串连接运算,运行时将产生大量临时字符串,这些会保存在内存中,从而导致程序的性能下降。

5.避免在经常调用的方法、循环中创建Java对象
这些对象的生存时间并不长,接下来系统又需要回收它们所占的内存空间,在这种不断分配,回收的操作中,程序的性能收到巨大的影响。

6.缓存经常使用的对象
    使用HashMap进行缓存
    直接使用某些开源的缓存项目
如果直接使用HashMap进行缓存,程序员需要手动控制HashMap容器里key-value对不至于太多,因为当key-value太多时将导致HashMap占用过大的内存,从而导致系统性能下降。