市面上,有許多Java的學習圖書,大部分圖書的內容都在講解著Java最為基礎的部分,有些稍微不正規的書中,可能還會存在些許錯誤的內容,而且網上也有千奇百怪的Java面試題,很多也是著重在Java基礎上。實際上應徵Java高級開發工程師的話,這些基礎知識的存貨是遠遠不夠的,除此之外,必須懂得演算法,資料結構,作業系統等知識。由於內容涉及較多,所以不講解具體的技術,而是從企業招聘Java高級開發工程師的面試題進行了整理,希望對大家有幫助。
一、Java基礎
1、物件導向
掌握物件導向的核心思想並深度理解
#掌握並瞭解封裝繼承多態相關技術
2、I/O
掌握位元組流FileInputStream,FileOutputStream和字元流FileWriter,OutputStreamWriter並且熟練地運用
掌握File類型的構造,取得並建立刪除
3、多執行緒
#掌握Thread類型
掌握多執行緒的程式運行原理及並行
4 、異常
掌握異常的工作原理並且掌握異常的處理方式
二、Java虛擬機
1、JVM記憶體區域劃分
#掌握JVM記憶體參數設定及調優
掌握程式計數器、堆疊、虛擬機器堆疊、本機方法堆疊、方法區(Java8已移除)、元空間(Java8新增)的功能及基本原理
2、類別載入
掌握類別的載入階段:載入、連結(驗證、準備、解析)初始化、使用、卸載。
掌握類別載入器分類及其應用程式類別載入器、自訂載入器。
三、J2EE
掌握Servlet內建物件、動作及相關特點和工作原理
掌握Spring框架的IOC和AOP實現原理(反射和動態代理)
至少掌握一個MVC框架(Spring MVC)的工作原理,並熟練運用。
四、資料結構與演算法
掌握線性表和樹的特性並熟練運用
掌握常用的排序與尋找演算法:插入排序(希爾排序)、選擇排序(堆排序)、交換排序(冒泡排序)順序查找、二分查找、雜湊查找
熟練運用排序和查找思想解決程式設計問題
五、資料庫
掌握SQL語句的編寫
掌握資料庫的最佳化(SQL層面和表格設計層面)
#至少掌握一款資料庫產品
熟悉高並發、大數據情況下的資料庫開發。
六、Web技術
掌握AJAX的工作原理。
至少熟悉一個JS框架(例如JQuery)
#七、Linux
熟練運用Linux常見指令
熟悉Linux作業系統基本概念及特點
八、正規表示式
掌握常見正規表示式