java 常用代码优化

9 篇文章 1 订阅
本文列举了Java编程中的一些性能优化技巧,包括创建集合时指定大小、避免重复计算、使用System.arraycopy()复制数组、优先使用基本类型、及时消除引用防止内存泄漏、减少同步容器的使用、利用ThreadLocal缓存线程不安全对象、使用延迟加载和连接池等。这些实践有助于提高代码效率和应用程序性能。
摘要由CSDN通过智能技术生成

目录

1. 创建集合指定大小

2. 集合遍历尽量减少重复计算

3. 使用Entry遍历Map

4. 大数组复制用 System.arraycopy()方法

5. 尽量使用基本类型, 而不是包装类型

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

7. 尽量使用局部变量, 减小变量的作用域

8. 尽量使用非同步的容器 ArrayList, 而不是Vector

9. 尽量减小同步作用范围, synchronized方法  VS  代码块

10. ThreadLocal缓存线程不安全的对象, SImpleDateFormat

11. 尽量使用延迟加载

12. 尽量减少使用反射, 要去加缓存

13. 尽量使用连接池, 线程池, 对象池, 缓存

14. 及时释放资源, I/O流, Socket,  数据库连接

15. 慎用异常, 不要用抛异常来表示正常的业务逻辑

16. String 操作尽量少用正则表达式

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

18. 日志中参数拼接使用占位符


1. 创建集合指定大小

  List<String> idList = new ArrayList<>(10);

2. 集合遍历尽量减少重复计算

for(int i = 0, len = idList.size(); i < len; i++) {}

3. 使用Entry遍历Map

for(Map.Entry<String, String>  entry : map.entrySet()){

        String key = entry.getKey();

        String value = entry.getValue();

}

4. 大数组复制用 System.arraycopy()方法

5. 尽量使用基本类型, 而不是包装类型

  Integer i = 100;    // 底层调用  Integer.valueof(i);

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

7. 尽量使用局部变量, 减小变量的作用域

8. 尽量使用非同步的容器 ArrayList, 而不是Vector

9. 尽量减小同步作用范围, synchronized方法  VS  代码块

10. ThreadLocal缓存线程不安全的对象, SImpleDateFormat

public class SimpleDateFormatUtil {

      private static ThreadLocal<SimpleDateFormat>  dateFormatHolder = new ThreadLocal<SimpleDateFormat>() {
            protected SimpleDateFormat initialValue() {
                return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            }
      };

        
      public static void main(String[] args) {
         dateFormatHolder.get().format(new Date());
      }

}

11. 尽量使用延迟加载

        

public class Singleton {

      private Singleton(){}
        
      public static class SingletonHolder {
         private static Singleton instance = new Singleton(); 
      }

      public static Singleton getInstance {
         return SingletonHolder.instance; 
      }
}

12. 尽量减少使用反射, 要去加缓存

13. 尽量使用连接池, 线程池, 对象池, 缓存

14. 及时释放资源, I/O流, Socket,  数据库连接

15. 慎用异常, 不要用抛异常来表示正常的业务逻辑

16. String 操作尽量少用正则表达式

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

18. 日志中参数拼接使用占位符

     log.info("orderId:{}", orderId);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

time Friend

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值