淺談JAVA代碼優化

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不要寫在循環的嵌套中,儘可能寫在循環的最外層,異常的使用要謹慎。

相關文章
相關標籤/搜索