Java編碼最佳實踐(補充Effective Java)

《Effective Java》是提升編碼技巧的必備書籍,但是并沒有囊括所有的技巧,本文補充一些工作中經(jīng)常用到的編碼技巧

最佳實踐

不要使用FileReader和FileWriter

FileReader和FileWriter無法指定編碼方式,容易收到環(huán)境的影響,建議使用

try (InputStreamReader reader = new InputStreamReader(new FileInputStream("fileName"), StandardCharsets.UTF_8)) {
    // do something
    int i = 0;
} 

不要使用魔法值

使用常量替換魔法值

private static final int SUCCESS = 200;

public static boolean isSuccess(int code) {
    return code == SUCCESS;
}

不要用Exception捕捉所有異常

捕捉可檢異常,防止無意識的捕捉了RuntimeException

線程池不允許使用Executors去創(chuàng)建

阿里巴巴規(guī)范

線程池不允許使用Executors去創(chuàng)建,而是通過ThreadPoolExecutor的方式,這樣的處理方式讓寫的同學(xué)更加明確線程池的運行規(guī)則,規(guī)避資源耗盡的風(fēng)險。

使用Integer.parseInt

使用Integer.parseInt而不是Integer.valueOf,相同的也是使用Long.parseLong而不是Long.valueOf
parseXXX減少自動裝箱和拆箱的次數(shù),性能更高。

避免使用不安全的加密方式

避免使用MD5,SHA1摘要算法,避免使用DES對稱加密。這些加密算法已經(jīng)被破解或者通過彩虹表的方式間接破解了,存在安全隱患

使用StandardCharset.UTF_8

讀寫字符流在指定UTF-8編碼時,有很多種方式,其中StandardCharset.UTF_8由JDK提供,依賴性最低

使用SecureRandom

  • SecureRandom比Random隨機性強很多,使用了128位來生成隨機數(shù),Random只使用了48位。
  • Random使用時間作為種子或生成種子,比較容易被破解;SecureRandom使用操作系統(tǒng)提供的隨機數(shù)作為種子,比如/dev/random/dev/urandom
Random random = new SecureRandom(SecureRandom.getSeed(4));

使用%n而不是\n

%n可以產(chǎn)生平臺特定的換行符,兼容性更好

參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 廢話不多說,自己進入今天的主題 1、面向?qū)ο蟮奶卣饔心男┓矫妫?答:面向?qū)ο蟮奶卣髦饕幸韵聨讉€方面: - 抽象:...
    傳奇內(nèi)服號閱讀 2,536評論 1 31
  • 一、基礎(chǔ)知識:1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機...
    殺小賊閱讀 2,569評論 0 4
  • “沒那么簡單,就能找到聊的來的伴”。 現(xiàn)在的我不敢認真也不敢隨意表露出自己內(nèi)心的暴躁,因為平平淡淡的生活經(jīng)不起折騰...
    e80b441e3bd6閱讀 346評論 0 0
  • 一般情況下天氣預(yù)報都不太準 所以也就沒怎么相信 中午的陽光照的格外刺眼 忙于干活的人們拖著疲憊的身軀回家 汗水已經(jīng)...
    劉公子說閱讀 282評論 0 0
  • 有一位小女孩養(yǎng)了一條小魚,隨著小魚越長越大,也變得越來越漂亮,小女孩更喜歡它了,可是這個魚缸對它來說已經(jīng)開始小了,...
    系統(tǒng)排列閱讀 320評論 0 0

友情鏈接更多精彩內(nèi)容