当前位置:网络安全 > Java程序减少内存占用

Java程序减少内存占用

  • 发布:2023-10-10 20:18

尽量复用对象,不要在循环中创建对象,如:for循环字符串拼接

初始化容器类时指定长度
Listcollection=new ArrayList (5 ; for(int i=0,len=collection.size();i
使用 Entry 遍历 Map
for (Map.Entryentry: map.entrySet){
String key=entry.getkey();
String value=entry.getValue);

使用 System.arraycopy 进行大型数组复制

尝试使用基本类型而不是打包类型类型
整数 i = 100;
System.outprintln(i);

整数 i1 = 100;
整数 i2 = 100;
System.outprintln(i1==i2); true
Integer i3 = 100 ;
Integeri4=1000;
System.outprintln(i3==i4);false

因为 Inteage 默认获取的是缓存中的值,而缓存中的值是cache 为 -128 -> 127,所以第一个为 true,第二个为 false

不要手动调用 System.gc()

及时消除对过期对象的引用,防止内存泄漏

尝试使用局部变量,缩小变量范围

尝试使用异步容器ArrayList VS Vector

尝试缩小同步范围,同步方法VS代码块

ThreadLocal 缓存线程不安全对象,SimpleDateFormat 尝试使用延迟加载
public class Singleton{
private Singleton(){}
private static class SingletonHolder{
private static Singleton instance=new Singleton();
}
public static Singleton GetInstance() {
返回 Singletonholder.instance;释放资源、I/O流、Sockets、数据库连接

谨慎使用异常,不要用抛出异常来表达正常的业务逻辑

String操作尽量少使用正则表达式
Replace VS ReplaceAll (先使用replace,replaceAll会在下面使用正则表达式)
split

注意日志输出使用不同级别

在日志中使用占位符进行参数拼接
www.sychzs.cn("orderld:"+orderld );不推荐
www.sychzs.cn("orderld: {}",orderld);推荐

如果是单核CPU,请使用串行垃圾收集器

使用一些新功能设计模式

相关文章

热门推荐