1.Java 中使用 Collections 的最佳實(shí)踐
a)使用正確的集合類,例如,如果不需要同步列表,使用 ArrayList 而不是 Vector。
b)優(yōu)先使用并發(fā)集合,而不是對(duì)集合進(jìn)行同步。并發(fā)集合提供更好的可擴(kuò)展性。
c)使用接口代表和訪問集合,如使用List存儲(chǔ) ArrayList,使用 Map 存儲(chǔ) HashMap 等等。
d)使用迭代器來(lái)循環(huán)集合。
e)使用集合的時(shí)候使用泛型。
2. Java 中使用線程的最佳實(shí)踐。
a)對(duì)線程命名
b)將線程和任務(wù)分離,使用線程池執(zhí)行器來(lái)執(zhí)行 Runnable 或 Callable。
c)使用線程池
3. JDBC 最佳實(shí)踐
a)使用批量的操作來(lái)插入和更新數(shù)據(jù)
b)使用 PreparedStatement 來(lái)避免 SQL 異常,并提高性能。
c)使用數(shù)據(jù)庫(kù)連接池
d)通過列名來(lái)獲取結(jié)果集,不要使用列的下標(biāo)來(lái)獲取。
4. IO 的最佳實(shí)踐
a)使用有緩沖區(qū)的 IO 類,而不要單獨(dú)讀取字節(jié)或字符。
b)使用 NIO 和 NIO2
c)在 finally 塊中關(guān)閉流,或者使用 try-with-resource 語(yǔ)句。
d)使用內(nèi)存映射文件獲取更快的 IO。
5.編寫多線程最佳實(shí)踐
a)給線程命名,這樣可以幫助調(diào)試。
b)最小化同步的范圍,而不是將整個(gè)方法同步,只對(duì)關(guān)鍵部分做同步。
c)如果可以,更偏向于使用 volatile 而不是 synchronized。
d)使用更高層次的并發(fā)工具,而不是使用 wait() 和 notify() 來(lái)實(shí)現(xiàn)線程間通信,如 BlockingQueue,CountDownLatch 及 Semeaphore。
e)優(yōu)先使用并發(fā)集合,而不是對(duì)集合進(jìn)行同步。并發(fā)集合提供更好的可擴(kuò)展性。