如何提高Java程式碼質量-優雅的寫程式碼
寫在前面的話:
- 先讓程式碼跑起來再考慮優化,警惕過早優化程式碼
- 程式碼review很重要
- 閱讀程式碼的時間比寫程式碼的時間多得多
應該注意的規範
所有檔案的開頭都要有Java文件的註釋
儘量使類中所有的變數都是私有的,只能通過方法來訪問它們
常量應該全部大寫,單詞之間由下劃線分隔(例如,MAX_WORK_HOURS)
一行應該包含一個語句
在使用if-else、for、while、do和switch語句時應該使用大括號
避免一行中超過80個字元
陣列標識:要用"int[] packets",而不是"int packets[]",後一種永遠也不要用
不要在迴圈中構造和釋放物件
在任何可能的地方讓類為Final,標記為final的類不能被擴充套件
在任何可能的地方使用區域性變數,屬於方法呼叫部分的自變數和宣告為此呼叫一部分的臨時變數儲存在棧中
用程式碼有效處理記憶體溢位,OutOfMemoryError是由於記憶體不夠後普遍會遇到的問題
儘量使用懶載入,即在需要時才建立
try...catch只允許包裹當前會丟擲異常的程式碼塊,多餘的程式碼塊會影響資源回收。並且 try...catch 禁止在迴圈體內部使用
集合如果能估計到待新增的內容長度,請指定容器的初始長度
比如ArrayList、LinkedLlist、StringBuilder、StringBuffer、HashMap、HashSet
for迴圈的優化
//replace
for( int i = 0; i < collection.size(); i++) {
...
}
//with...
for( int i = 0, n = collection.size(); i < n; i++) {
...
}
迴圈儘量不要不斷建立物件引用,
//這種做法會導致記憶體中有count份Object物件引用存在,count很大的話,就耗費記憶體了
//replace
for (int i = 1; i <= count; i++){
Object obj = new Object();
}
//with...
Object obj =null;
for (int i = 1; i <= count; i++){
obj = new Object();
}
字串優化
String str1 = "str";
String str2 = "ing";
String str3 = "str" + "ing";//常量池中的物件
String str4 = str1 + str2; //在堆上建立的新的物件
String str5 = "string";//常量池中的物件
System.out.println(str3 == str4);//false
System.out.println(str3 == str5);//true
System.out.println(str4 == str5);//false
//使用append代替+
//replace
String str = "profit = revenue( “ + revenue +
”) - cost( “ + cost + ”)";
//with
String str = new StringBuffer().append( "profit = revenue( “).
append( revenue).append( “) - cost( “).
append( cost).append( “)“).toString();
字串和字串常量equals的時候將字串常量寫在前面,能避免NPE
String str = "aac";
//replace
str.equals("aac");
//with
"123".equals(str);
使用常量
常量宣告為
static final
,並以大寫命名在編譯期間就可以把這些內容放入常量池中,避免執行期間計算生成常量的值。另外,將常量的名字以大寫命名也可以方便區分出常量與變數同型別的多個常量請使用列舉
單一常量請使用 interface 宣告類包裹, interface 天生就是靜態公開的。
Spring 注入
Spring 注入方式注入請使用 Construction 方式進行注入,傳統的@Autowired注入方式容易產生 NPE 錯誤,因此 Spring 強烈建議使用 Construction 代替 Field 注入。如:
class Foo {
//replace
//@Autowired private SomeService someService;
//with
private final SomeService someService;
@Autowired public Foo(SomeService someService) {
this.someService = someService;
}
}
未完待續 - - -
參考連結:http://www.cnblogs.com/xrq730/p/4865416.html
程式設計是一門藝術,程式設計師是藝術家,其他人是碼農!!
相關文章
- 程式碼質量管理——如何寫出優雅的程式碼
- 提高程式碼質量:如何編寫函式函式
- 如何寫出優雅的程式碼?
- 如何做好質量管理、提高研發的程式碼質量?
- 如何寫出優雅耐看的JavaScript程式碼JavaScript
- 如何寫出更優質的程式碼
- 如何書寫高質量的jQuery程式碼jQuery
- 寫出優雅的js程式碼JS
- golang如何優雅的編寫事務程式碼Golang
- 我是如何將業務程式碼寫優雅的
- 如何用 SpringBoot 優雅的寫程式碼Spring Boot
- 提高java和mysql程式碼效能和質量薦JavaMySql
- 提高PHP程式碼質量的36計PHP
- 提高 PHP 程式碼質量的 36 計PHP
- 提高程式碼質量-工具篇
- 提高php程式碼質量 36計PHP
- 怎樣編寫高質量的java程式碼Java
- 【優雅寫程式碼系統】springboot+mybatis+pagehelper+mybatisplus+druid教你如何優雅寫程式碼Spring BootMyBatisUI
- 編寫更優雅的 JavaScript 程式碼JavaScript
- 提高程式碼質量的12個技巧
- 提高PHP程式碼質量的36個技巧PHP
- 如何優雅的打包前端程式碼前端
- 如何透過靜態分析提高iOS程式碼質量iOS
- 優雅的程式碼
- 助您寫出優雅的Java程式碼七點建議Java
- [轉]高質量JAVA程式碼編寫規範Java
- 如何編寫高質量的C#程式碼(一)C#
- 如何用 es6+ 寫出優雅的 js 程式碼JS
- 看promise教你如何優雅的寫js非同步程式碼PromiseJS非同步
- 何為程式碼質量?——用腦子寫程式碼
- 編寫優雅程式碼的最佳實踐
- 提高 Android 程式碼質量的4個工具Android
- 前端程式碼質量優化交流前端優化
- 如何編寫高質量和可維護的程式碼
- JAVA優質程式碼編寫的30條可行建議Java
- 一堂如何提高程式碼質量的培訓課(三)
- 萬字長文詳解如何使用Swift提高程式碼質量Swift
- 重構真的能提高程式碼質量嗎?