聲明:本文全部列舉的問題都來源於 《編程隨想》的博客,這個博客的博主知識淵博,編程方面的一些文章質量很高,給人醍醐灌頂的感受。算法
何時該用數組類型容器,何時該用鏈表型容器,如何合理的使用數據類型編程
什麼是散列函數,HashMap的實現原理是什麼數組
什麼是遞歸,使用遞歸實現目錄樹遍歷數據結構
什麼是算法複雜度多線程
是否理解空間換時間的思想函數
寫一個針對整數數組的冒泡排序,性能
寫一個針對整數數組的二分查找函數ui
基於接口的繼承和基於實現的繼承各有什麼優缺點線程
繼承(extend implement) 有什麼缺點設計
多態有什麼缺點
爲何 Java 能夠多繼承interface,不能夠多繼承 class
假如讓你寫一個小遊戲,如五子棋人機對戰,如何設計類結構
類結構設計時,如何考慮可擴展性
隨意的命名
習慣於代碼的 copy & paste
Magic Number 滿天飛
代碼耦合度太大
被 GC 寵壞(資源不懂回收)
空 catch 語句塊
沒有使用 finally
籠統的 catch 語句塊
使用函數返回值作錯誤處理
不清楚 Checked Exception 和 Runtime Exception的區別
Checked Exception 表示可恢復的異常,也就是必須檢查的異常
Runtime Exception 表示不可恢復的異常
基本類型和引用類型
基本類型和引用類型在內存存儲上有什麼區別
這兩種類型在性能上有什麼區別
這兩種類型對於 GC 有什麼區別
垃圾回收機制
GC 是如何判斷哪些對象已經失效
GC 對性能有哪些影響
如何經過 JVM 參數調優 GC 性能
關於字符串
String 和 StringBuilder的區別,爲啥要設計兩種類型
關於泛型
GP 是在編譯時仍是在運行時實現的,爲何要這麼實現
GP 的類型擦除機制是咋回事,有啥優缺點
使用泛型容器在性能上有啥影響,爲何
關於多線程
synchronized 關鍵字起什麼做用
synchronized 的做用域如何,是針對某個類仍是針對某個對象實例
synchronized 對性能的影響,爲何
volatile 關鍵字什麼用途,何時須要這個關鍵字