Java代码性能优化总结

来源:互联网 发布:linux客户端检测ntp 编辑:程序博客网 时间:2024/05/29 13:29

1.尽量使用指定类,方法的final修饰符

   带有final修饰符的类是不可派生的.如果指定一个类是final,则该类所有方法都是final的,Java编译器会寻找机会内联所有的final方法,此举能使性能平均提高50%.

2.尽量重用对象.

   特别是String对象,出现字符串连接时应使用StirngBuilder/StringBuffer.

3.尽可能使用局部变量

   应为它是在栈中创建,比较快.其他的变量是在堆中,比较慢.

4.及时关闭流

5.尽量减少对变量的重复计算

6.尽量采用懒加载,即在需要的时候才创建.

7.慎用异常

   只要异常被抛出,Java虚拟机就必须调整调用堆栈,因为在处理过程中创建了一个新的对象.异常只能用于错误处理,不能用于程序控制流程

8.不要在循环中使用try...catch,

9.如果能估计添加的长度,为底层以数组实现的集合使用初始长度

10.当复制大量数据时,使用System.arraycopy()命令

11.乘法和除法使用移位操作

12.循环类不要不断创建对象引用

13.基于效率和类型检查的考虑,尽可能使用array,不确定大小时用arraylist

14.在需要线程安全的地方再使用线程安全的集合

15.不要将数组声明为public static final,无意义

16.尽量在合适的场合使用单列

17.尽量避免使用static

    gc通常不会回收它

18.实现randomaccess接口的集合应使用for循环,不用foreach

    因为是随机访问

19.同步代码块代替同步方法

20.将常量声明为static final

21.程序运行过程中最好不要用反射

22.多用线程池

23.最好用带缓冲的输入输出流

24.字符串变量和字符串常量equals的时候讲字符串常量写在前面.

25.不要对数组用toString()方法

26.公用的集合类中不使用的数据一定要及时remove掉

27.遍历map

    HashMap<String, String> hm = new HashMap<>();

    hm.put();

    Set<Map.Entry<String, String>> entryMap = hm.entrySet();

    Iterator<Map.Entry<String, String>> iter = entrySet.iterator();

    while(iter.hasNext()){

        Map.Entry<String, String> entry = iter.next();

       }

原创粉丝点击