Java 面試問題系列十(最佳實(shí)踐)

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ò)展性。

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

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

  • 俗話說(shuō):人在江湖混,哪有不挨刀!這是打我入大學(xué)以來(lái)一直就秉持著的真理,因?yàn)榇髮W(xué)也算半個(gè)江湖,既然已經(jīng)開始沾邊江湖了...
    素人之舟閱讀 337評(píng)論 0 0
  • 你上市場(chǎng)買過菜嗎? 選擇的時(shí)候決定的因素是什么? 你喜歡什么菜? 我喜歡白菜、菠菜、豆芽、土豆、南瓜、地瓜…… 你...
    心怡曼陀羅心理工作室閱讀 915評(píng)論 0 1
  • 我們小時(shí)候玩兒泥巴是很自然的事情,有時(shí)候不需要水來(lái)調(diào)和土,單單是普通的土塊都可以玩兒半天。玩兒泥巴也不是什么技術(shù)活...
    桃球蛋閱讀 782評(píng)論 0 0

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