標籤:運算子 ima 失敗 oid 否則 字串 uil ret integer
1.用if+return代替複雜的if...else(if+return)
public static void test1(String str) { if ("1".equals(str)) { System.out.println("輸入的參數是1"); return; } if ("2".equals(str)) { System.out.println("輸入的參數是2"); return; } if ("3".equals(str)) { System.out.println("輸入的參數是3"); return; } System.out.println("你輸入的不是123`````````"); // ...這裡可以寫不滿足上述條件的處理 }
2.盡量減少對變數的重複計算(for迴圈的用法)
明確一個概念,對方法的調用,即使方法中只有一句語句,也是有消耗的,包括建立棧幀、調用方法時保護現場、調用方法完畢時恢複現場等。所以例如下面的操作:
for (int i = 0; i < list.size(); i++){...}
建議替換為:
for (int i = 0, int length = list.size(); i < length; i++){...}
這樣,在list.size()很大的時候,就減少了很多的消耗
補充:
用第一種方法時進行非空驗證:
for (int i = 0; list!=null && i < list.size(); i++){...}
3.迴圈內不要不斷建立對象引用
例如:
for (int i = 1; i <= count; i++){ Object obj = new Object(); }
這種做法會導致記憶體中有count份Object對象引用存在,count很大的話,就耗費記憶體了,建議為改為:
Object obj = null;for (int i = 0; i <= count; i++){ obj = new Object();}
這樣的話,記憶體中只有一份Object對象引用,每次new Object()的時候,Object對象引用指向不同的Object罷了,但是記憶體中只有一份,這樣就大大節省了記憶體空間了。
4、盡量使用HashMap、ArrayList、StringBuilder,除非安全執行緒需要,否則不推薦使用Hashtable、Vector、StringBuffer,後三者由於使用同步機制而導致了效能開銷
5.字串變數和字串常量equals的時候將字串常量寫在前面
String str = "123";if (str!=null && "123".equals(str)){ ...}
這麼做主要是可以避免null 指標異常
6.任何資料在使用之前進行非空判斷(包括對象,list)
List<Employeeexam> employeeInExams = exam.getEmployeeInExams(); List<Employeeexam> employeeOutExams = exam.getEmployeeOutExams(); boolean insertEmployeeResult = false; int in_size, out_size; in_size = employeeInExams != null ? employeeInExams.size() : 0; out_size = employeeOutExams != null ? employeeOutExams.size() : 0; Integer employeeNum = in_size + out_size;
7.if...else...語句用條件運算子
return examMapper.deleteByPrimaryKey(id) > 0 ? true : false;
result = examService.deleteExamById(examId) ? "刪除成功!" : "刪除失敗!";
Java一些小的思想