Java 最佳實踐的面試問題
包含 Java 中各個部分的最佳實踐,如集合,字符串,IO,多線程,錯誤和異常處理,設計模式等等。
76)Java 中,編寫多線程程序的時候你會遵循哪些最佳實踐?(答案)
這是我在寫Java 并發程序的時候遵循的一些最佳實踐:
a)給線程命名,這樣可以幫助調試。
b)最小化同步的范圍,而不是將整個方法同步,只對關鍵部分做同步。
c)如果可以,更偏向于使用 volatile 而不是 synchronized。
d)使用更高層次的并發工具,而不是使用 wait() 和 notify() 來實現線程間通信,如 BlockingQueue,CountDownLatch 及 Semeaphore。
e)優先使用并發集合,而不是對集合進行同步。并發集合提供更好的可擴展性。
77)說出幾點 Java 中使用 Collections 的最佳實踐(答案)
這是我在使用 Java 中 Collectionc 類的一些最佳實踐:
a)使用正確的集合類,例如,如果不需要同步列表,使用 ArrayList 而不是 Vector。
b)優先使用并發集合,而不是對集合進行同步。并發集合提供更好的可擴展性。
c)使用接口代表和訪問集合,如使用List存儲 ArrayList,使用 Map 存儲 HashMap 等等。
d)使用迭代器來循環集合。
e)使用集合的時候使用泛型。
78)說出至少 5 點在 Java 中使用線程的最佳實踐。(答案)
a)對線程命名
b)將線程和任務分離,使用線程池來執行 Runnable 或 Callable。
c)使用線程池
79)說出 5 條 IO 的最佳實踐(答案)
IO 對 Java 應用的性能非常重要。理想情況下,你不應該在你應用的關鍵路徑上避免 IO 操作。下面是一些你應該遵循的 Java IO 最佳實踐:
a)使用有緩沖區的 IO 類,而不要單獨讀取字節或字符。
b)使用 NIO 和 NIO2
c)在 finally 塊中關閉流,或者使用 try-with-resource 語句。
d)使用內存映射文件獲取更快的 IO。
80)列出 5 個應該遵循的 JDBC 最佳實踐(答案)
a)使用批量的操作來插入和更新數據
b)使用 PreparedStatement 來避免 SQL 異常,并提高性能。
c)使用數據庫連接池
d)通過列名來獲取結果集,不要使用列的下標來獲取。
同步就是指一個進程在執行某個請求的時候,若該請求需要一段時間才能返回信息,那么這個進程將會一直等待下去,直到收到返回信息才繼續執行下去;異步是指進程不需要一直等下去,而是繼續執行下面的操作。
即當多個線程需要訪問同一個資源時,同步來確保該資源在某一特定時刻只能被一個線程所訪問,如果使用異步,程序的運行結果將不可預料。