對于剛剛?cè)腴T學(xué)習(xí)Java編程語言的初學(xué)者而言,學(xué)習(xí)Java的基礎(chǔ)語法固然重要,養(yǎng)成良好的編程習(xí)慣也是在一開始就需要注意的學(xué)習(xí)重點(diǎn)。只有在一開始建立好基礎(chǔ)的習(xí)慣,才能在后期的Java開發(fā)中,提高自己的編碼水平和效率。在這里小編整理了提高Java開發(fā)效率的十個編程好習(xí)慣供大家參考,下面一起來看看吧!
10年積累的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有鹽湖免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1、盡可能的編寫整潔的代碼
要想讓其他人能夠讀懂你的代碼,盡量使用最少的代碼來完成任務(wù)。遵循DRY(Don’t repeat yourself)的原則,使用明確定義的對象和庫,將任務(wù)分解成小而簡單的代碼段。
2、嘗試使用單個例如在合適的場合
使用單例可以減輕負(fù)荷的負(fù)擔(dān),縮短加載時間。提高裝載效率,但并不是所有的地方都適合一個案例。簡單的說,單主要適用于以下三個方面:控制資源的使用,通過線程同步來控制資源的并發(fā)訪問;控制實(shí)例的產(chǎn)生,以達(dá)到節(jié)約資源的目的;控制數(shù)據(jù)共享,在不建立直接關(guān)聯(lián)的條件下,讓多個不相關(guān)的進(jìn)程或線程之間實(shí)現(xiàn)通信。
3、使用CheckStyle工具規(guī)范代碼。
其實(shí)任何東西我們都希望它能夠“自動化”,隨著編程經(jīng)驗(yàn)的提升,大部分編程規(guī)范你已經(jīng)了然于心,但是實(shí)際操作的時候,又總是忘這忘那,我們希望一個工具來幫我們自動檢測我們的程序是否是符合規(guī)范,結(jié)構(gòu)良好的。事實(shí)上,任何語言都是有自己的編程規(guī)范的,編程規(guī)范的制定,十分有利于代碼的閱讀和潛在Bug風(fēng)險的降低,比如在Java中,有嚴(yán)格的命名規(guī)范。比如在Java中,有嚴(yán)格的文檔規(guī)范。所以我們需要使用checkstyle插件去自動檢測我們的程序是否符合規(guī)范。
4、多閱讀官方文檔。
不要過分依賴教程,要學(xué)會看官方文檔。凡是能被做成教程的東西,往往已經(jīng)過時了,最新的技術(shù),最新發(fā)布的標(biāo)準(zhǔn),往往沒有現(xiàn)成的教程,你需要去認(rèn)真閱讀官方文檔,那里的東西才是最權(quán)威的。
5、不要重復(fù)代碼
盡可能杜絕重復(fù)代碼,凡是需要用至少兩次的代碼,給它單獨(dú)做一個類或函數(shù)。舉個例子:當(dāng)我們在Java開發(fā)中遇到同一個類中兩個函數(shù)含有相同的表達(dá)式的時候,可以采用Extract Method提取重復(fù)的代碼使之成為函數(shù),兩處函數(shù)同時調(diào)用提出的函數(shù)。
6、應(yīng)該使用Collection.isEmpty()檢測空
使用 Collection.size() 來檢測空邏輯上沒有問題,但是使用 Collection.isEmpty()使得代碼更易讀,并且可以獲得更好的性能。任何 Collection.isEmpty() 實(shí)現(xiàn)的時間復(fù)雜度都是 O(1) ,但是某些 Collection.size() 實(shí)現(xiàn)的時間復(fù)雜度可能是 O(n) 。
正例:
if (collection.isEmpty()) {
...
}
如果需要還需要檢測 null ,可采用CollectionUtils.isEmpty(collection)和CollectionUtils.isNotEmpty(collection)。
7、集合初始化盡量指定大小
Java 的集合類用起來十分方便,但是看源碼可知,集合也是有大小限制的。每次擴(kuò)容的時間復(fù)雜度很有可能是 O(n) ,所以盡量指定可預(yù)知的集合大小,能減少集合的擴(kuò)容次數(shù)。
正例:
int[] arr = new int[]{1, 2, 3};
List
for (int i : arr) {
list.add(i);
}
8、優(yōu)先使用常量或確定值來調(diào)用 equals 方法。
對象的 equals 方法容易拋空指針異常,應(yīng)使用常量或確定有值的對象來調(diào)用 equals 方法。當(dāng)然,使用java.util.Objects.equals() 方法是最佳實(shí)踐。
正例:
public void isFinished(OrderStatus status) {
return OrderStatus.FINISHED.equals(status);
}
public void isFinished(OrderStatus status) {
return Objects.equals(status, OrderStatus.FINISHED);
}
9、表達(dá)式不要多余括號
對應(yīng)表達(dá)式中的多余括號,有人認(rèn)為有助于代碼閱讀,也有人認(rèn)為完全沒有必要。對于一個熟悉 Java 語法的人來說,表達(dá)式中的多余括號反而會讓代碼顯得更繁瑣。
正例:
return x;
return x + 2;
int x = y * 3 + 1;
int m = n * 4 + 2;
10、最好不用使用split
最好不用使用split,除非是必須的。split因?yàn)橹С终齽t表達(dá)式,所以效率比較低,假設(shè)是頻繁的幾十。幾百萬的調(diào)用將會耗費(fèi)大量資源,假設(shè)確實(shí)需 要頻繁的調(diào)用split,能夠考慮使用apache的StringUtils.split(string,char),頻繁split的能夠緩存結(jié)果。因此,為了提高Java開發(fā)效率最好避免使用split。
以上就是提高Java開發(fā)效率的十個編程好習(xí)慣,大家都記住了嗎?以上的十個編程好習(xí)可以說是,從事Java開發(fā)極其重要的經(jīng)驗(yàn)總結(jié)。如果大家能真正養(yǎng)成上面的好習(xí)慣,相信就能編寫出更加優(yōu)雅的代碼,并且提高Java的開發(fā)效率。