Java代码性能优化总结

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();

       }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值