常用代码优化方法
-
尽量重用对象,不要循环创建对象,比如:for 循环字符串拼接(不在 for中使用+拼接,先new 一个StringBuilder再在 for 里 append)
-
容器类初始化的地时候指定长度
List<String> collection = new ArrayLIst<String>(5);
Map<String, String> map = new HashMap<String, String>(32);
-
ArrayList(底层数组)随机遍历快,LinkedList(底层双向链表)添加删除快
-
集合遍历尽量减少重复计算
-
使用 Entry 遍历 Map
-
大数组复制使用System.arraycopy
-
尽量使用基本类型而不是包装类型
-
不要手动调用 System.gc()
-
及时消除过期对象的引用,防止内存泄漏
-
尽量使用局部变量,减小变量的作用域
-
尽量使用非同步的容器ArraryList vs. Vector
-
尽量减小同步作用范围, synchronized 方法 vs. 代码块
-
用ThreadLocal 缓存线程不安全的对象,SimpleDateFormat
-
尽量使用延迟加载
-
尽量减少使用反射,必须用加缓存
-
尽量使用连接池、线程池、对象池、缓存
-
及时释放资源, I/O 流、Socket、数据库连接
-
慎用异常,不要用抛异常来表示正常的业务逻辑
-
String 操作尽量少用正则表达式
-
日志输出注意使用不同的级别
-
日志中参数拼接使用占位符
log.info("orderId:" + orderId); 不推荐
log.info("orderId:{}", orderId); 推荐