博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java内存管理的小技巧
阅读量:5161 次
发布时间:2019-06-13

本文共 754 字,大约阅读时间需要 2 分钟。

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占用过大的内存,从而导致系统性能下降。

转载于:https://www.cnblogs.com/shangwne/archive/2012/07/14/3617551.html

你可能感兴趣的文章
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
查看>>
AngularJS入门之动画
查看>>
获取子元素在父元素中的下标
查看>>
TextBox 绑定到DataTable某一列属性上
查看>>
背包九讲
查看>>
android 学习资源网址
查看>>
shell基础
查看>>
2018.1.15
查看>>
[集合DP] UVA 10651 Pebble Solitaire
查看>>
测试成长之路
查看>>
jquary常见问题总结
查看>>
java时间格式大全
查看>>
Javascript中eval解析的json的几种用法
查看>>
Dashbroad 展现数据
查看>>
Jedis路由key的算法剥离
查看>>
Codeforces Round #485 (Div. 2)
查看>>
记一次博客被群压的经历
查看>>
Java String codePoint相关api
查看>>
bzoj4447 SCOI2015 小凸解密码 password
查看>>
解析Ceph: RBDCache 背后的世界
查看>>