JAVA代码的优化分为两个方面:数据库
1、减少代码的体积。2、提升代码的执行效率。函数
======================================================================================oop
1、减少代码的体积优化
1.若是要改动代码尽可能集中在一处修改,例如要修改某些属性的值,能够写一个统一化的方法对属性进行修改。spa
2.若是有一个功能超过两次被使用,能够考虑把它封装一个静态的方法写在公共的Utils中。code
3.若是有超过两个子类在某个函数中作了类似但又不一样的操做,能够考虑将这个函数在父类中抽象化。对象
2、提升代码的执行效率blog
1.时间复杂度尽可能要小(越少的loop嵌套,代码的执行效率越高)。写代码时能够多采用过滤的方式提取出目标数据,尽可能不使用循环的方式提取。内存
2.写代码切勿相互依赖,尽可能作到解耦(例如A Service中调用了B Service中的方法,同理B也调用了A,这样是不能够的)。字符串
3.减小动态运算的语句,宁肯浪费一点内存去处理数据,也不可以让它动态运算浪费CPU。
4.减小对象的建立,因为JVM建立对象的时候会花费时间生成,当对象失效的时候JVM还会对其进行垃圾回收,例如对字符串的拼接尽可能使用StringBuffer、if判断中对象的使用能够在判断中建立。以下代码:
//低效率的写法 List list = new ArrayList<>(); int[] arr = new int[]{0,1,5,8,15}; for(int i = 0; i <= arr.length; ++i;){ String name = new String("Jack"); if(arr[i]==i){ list.add(name); } } //高效率的写法 List list = new ArrayList<>(); int[] arr = new int[]{0,1,5,8,15}; for(int i = 0, len = arr.length; i <= len; ++i;){ if(arr[i]==i){ String name = new String("Jack"); list.add(name); } }
5.若是成员变量和局部变量都能保证功能的实现,尽可能使用局部变量。由于局部变量存储在栈中速度较快,成员变量存储在堆中速度较慢。
6.初始化变量时尽可能不要写在循环中,以下代码:
//低效率的写法 for(int i = 0; i <= n; ++i){ String name = "Jack"; System.out.println(name); } //高效率的写法 String name = "Jack"; for(int i = 0; i <= n; ++i){ System.out.println(name); }
7.数据库的链接和I/O流的操做,在完成使用后应当及时的进行关闭。
8.try catch不要写在循环的嵌套中,尽可能写在循环的最外层,异常的使用要谨慎。