思途|青島Java培訓之10條偏執的程式設計技巧
接下來,中享思途青島總部的途途將給大家介紹10項接近於“偏執”的Java程式設計技巧的前部分,雖然看似怪異但往往十分管用,謹獻給那少數不拘傳統的程式設計師們吧。
1.把字串常量放在前面
把字元常量放在比較函式equals()比較項的左側來防止偶然的 NullPointerException 是一個相當不錯的主意,把一種表示式換成另一種更加的表示式,並不會失去什麼,只要我們的Options是真實存在的。
2.不要相信早期的JDK APIs
Java誕生之初,程式設計異常痛苦,因為那時API不夠成熟,所以常常遇到這種情況,看起來很奇怪對吧?
再來看看這個Javadoc:“如果抽象路徑名錶示的不是一個目錄,那麼這個方法返回null。否則返回一個字串陣列,其中每個字串表示當前目錄下的一個檔案或目錄。”
最好再加上判空檢查,確保無誤
3.不要相信“-1”
我知道這很偏執,Javadoc中關於 String.indexOf() 的早期描述是這樣的:“字元在字元序列中第一次出現的位置將作為結果[被返回],如果字元不存在則返回-1。”
所以“-1”就可以被理所當然的拿來用嗎?當然不是!
4.避免意外的賦值
即便是最優秀的程式設計師也不可避免會犯這種錯誤,假設這是JavaScript,我們暫且偏執地認為是這種語言:
再強調一次,如果你的表示式中有常量,將它放在等式左邊,這樣當你想要新增下一個=時,才不容易出錯。
5.檢查null和長度
不管什麼時候,你都要確保你的集合、陣列或其他什麼是“存在且不為空”的。
你不知道這些陣列來自哪兒,也許是早期的JDK API呢?
本期,中享思途青島總部的途途將繼續為大家總結推薦那些“偏執卻有用的Java程式設計技巧”,一起來看!文承上期:
6.所有的方法都用 final 宣告
你可以告訴我任何你想要的開閉原則,不過那都是胡說八道,我不相信你(可以正確繼承我的類),也不信我自己(不會意外地繼承我的類)。因此除了介面(專門用於繼承)都應該是嚴格的 final,是的,寫成final。
7.所有的變數和引數都用 final 宣告
因為我不確定我什麼時候,就會無意間重寫了某個值,這也是為什麼所有的變數和引數都用final宣告的原因。
8.過載的時候不要相信泛型
有時候,你覺得你寫了一個超級棒的API,但接著出現一群使用者,他們只是把一切型別生搬進 Objec 中,直到停止工作,然後他們連線到了錯誤的方法,並認為這一切是“你的錯”!
思考一下這個:
因為,你知道的…你的使用者們,他們就像這樣:
還有這樣的:
所以說,偏執有時候還是有好處的。
9.總是在switch語句里加上default
Switch作為最滑稽的表示式之一,我不知道是該心存敬畏還是默默哭泣。但既然無法擺脫,不如在必要的時候好好地,正確的使用它吧,例如:
因為在當 value=3 被引入到軟體中的時候,default 就能發揮作用,使其正常執行,這對 enums 也一樣適用。
10.用大括號隔開 switch 的每一個 case 塊
switch是最坑爹的語句,任何喝醉了或是賭輸了的人都可以在某種語言中使用它。看看下面這個例子:
在switch語句中,為所有的case都只定義了一個作用域。但其實這些case並不是真正意義上的語句,他們更像是標籤,而switch就是指向這些標籤的goto語句。這意味著變數final int j可以被任何case訪問,不論我們是否有break。看起來並不是很直觀。我們可以通過新增簡單的花括號為每一個case建立一個新的巢狀的作用域,當然不要忘了在每個 case 的語句塊最後加 break。
相關文章
- java 偏執卻管用的10條Java程式設計技巧Java程式設計
- 偏執卻管用的10條Java程式設計技巧Java程式設計
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 黑馬程式設計師Java培訓和Android培訓:多執行緒程式設計師JavaAndroid執行緒
- 好程式設計師Java培訓分享Java多執行緒程式設計師Java執行緒
- Java程式設計師技術培訓需要培訓哪些?Java程式設計師
- 黑馬程式設計師Java培訓和Android培訓:培訓前奏程式設計師JavaAndroid
- 10個實用的但偏執的Java程式設計技術Java程式設計
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射
- 黑馬程式設計師Java培訓和Android培訓:程式設計基礎程式設計師JavaAndroid
- 好程式設計師Java培訓分享JDK工具條知識點程式設計師JavaJDK
- 好程式設計師Java培訓分享-簡單的效能最佳化技巧程式設計師Java
- 長沙Java培訓:自學Java程式設計有必要報培訓班麼?Java程式設計
- 好程式設計師Java培訓分享Java多執行緒併發程式設計師Java執行緒
- 黑馬程式設計師Java培訓和Android培訓Java技術二程式設計師JavaAndroid
- 好程式設計師Java培訓分享Java面試題之Java集合篇三程式設計師Java面試題
- java培訓面試技巧分享Java面試
- 黑馬程式設計師Java培訓和Android培訓:列舉程式設計師JavaAndroid
- 黑馬程式設計師Java培訓和Android培訓:I/O程式設計師JavaAndroid
- 黑馬程式設計師Java培訓和Android培訓_IO(二)程式設計師JavaAndroid
- 好程式設計師Java培訓之類的例項化步驟程式設計師Java
- 好程式設計師Java培訓Java程式設計師必學技術程式設計師Java
- 好程式設計師Java培訓分享如何快速入門Java程式設計程式設計師Java
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 黑馬程式設計師Java培訓和Android培訓_java高新技術(一)程式設計師JavaAndroid
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- 黑馬程式設計師Java培訓和Android培訓:物件導向程式設計師JavaAndroid物件
- 黑馬程式設計師Java培訓和Android培訓:內部類程式設計師JavaAndroid
- 好程式設計師Java培訓分享Java之命名、標示符、變數程式設計師Java變數
- 好程式設計師Python培訓分享Python程式設計師面試技巧程式設計師Python面試
- 好程式設計師Java培訓分享之RMI與RPC的區別程式設計師JavaRPC
- 好程式設計師Java培訓告訴你Java-執行緒怎麼來的?程式設計師Java執行緒
- 好程式設計師Java培訓分享學Java程式設計要注意什麼程式設計師Java
- 好程式設計師Java培訓分享BigDecimal的用法程式設計師JavaDecimal
- 學習Java程式設計培訓的書籍有哪些Java程式設計
- 好程式設計師Java培訓分享Java EE與Java的區別程式設計師Java
- 好程式設計師Java培訓分享Java和HTML的區別?程式設計師JavaHTML
- 好程式設計師Java培訓分享面試Java的注意事項程式設計師Java面試