Java高階軟體工程師面試考綱
如果要應聘高階開發工程師職務,僅僅懂得Java的基礎知識是遠遠不夠的,還必須懂得常用資料結構、演算法、網路、作業系統等知識。因此本文不會講解具體的技術,筆者綜合自己應聘各大公司的經歷,整理了一份大公司對Java高階開發工程師職位的考核綱要,希望可以幫助到需要的人。
當前,市面上有《Java XX寶典》類似的圖書,而且圖書中的內容都著重在講解Java最為基礎的部分,最嚴重的是,裡面有著大量錯誤的內容,極具誤導性。另外,網上也有各種各樣的Java面試題,很多也是著重在Java語言基礎上。實際上,如果要應聘高階開發工程師職務,僅僅懂得Java的基礎知識是遠遠不夠的,還必須懂得常用資料結構、演算法、網路、作業系統等知識。因此本文不會講解具體的技術,筆者綜合自己應聘各大公司的經歷,整理了一份大公司對Java高階開發工程師職位的考核綱要,希望可以幫助到需要的人。
1 Java基礎
1.1 Collection和Map
(1)掌握Collection和Map的繼承體系。
(2)掌握ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、WeakHashMap、EnumMap、TreeMap、HashTable的特點和實現原理。
(3)掌握CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap的實現原理和適用場景。
1.2 IO
(1)掌握InputStream、OutputStream、Reader、Writer的繼承體系。
(2)掌握位元組流(FileInputStream、DataInputStream、BufferedInputStream、FileOutputSteam、DataOutputStream、BufferedOutputStream)和字元流(BufferedReader、InputStreamReader、FileReader、BufferedWriter、OutputStreamWriter、PrintWriter、FileWriter),並熟練運用。
(3)掌握NIO實現原理及使用方法。
1.3 異常
(1)掌握Throwable繼承體系。
(2)掌握異常工作原理。
(3)瞭解常見受檢異常(比如FileNotFoundException)、非受檢異常(比如NullPointerException)和錯誤(比如IOError)。
1.4 多執行緒
(1)掌握Executors可以建立的三種(JAVA8增加了一種,共四種)執行緒池的特點及適用範圍。
(2)掌握多執行緒同步機制,並熟練運用。
1.5 Socket
(1)掌握Socket通訊原理。
(2)熟練使用多執行緒結合Socket進行程式設計。
2 Java虛擬機器
2.1 JVM記憶體區域劃分
(1)掌握程式計數器、堆、虛擬機器棧、本地方法棧、方法區(JAVA8已移除)、元空間(JAVA8新增)的作用及基本原理。
(2)掌握堆的劃分:新生代(Eden、Survivor1、Survivor2)和老年代的作用及工作原理。
(3)掌握JVM記憶體引數設定及調優。
2.2 類載入
(1)掌握類的載入階段:載入、連結(驗證、準備、解析)、初始化、使用、解除安裝。
(2)掌握類載入器分類及其應用:啟動類載入器、擴充套件類載入器、應用程式類載入器、自定義載入器。
3 J2EE
(1) 掌握JSP內建物件、動作及相關特點和工作原理。
(2) 掌握Servlet的特點和工作原理。
(3) 掌握Spring框架的IOC和AOP實現原理(反射和動態代理)。
(4) 至少掌握一個MVC框架(Spring MVC,Struts等)的工作原理,並熟練運用。
(5) 至少掌握一個ORM框架(Hibernate,MyBatis等)的工作原理,並熟練運用。
4 資料結構與演算法
(1)掌握線性表和樹的特點並熟練運用。
(2)掌握常用排序和查詢演算法:插入排序(直接插入排序、希爾排序)、選擇排序(直接選擇排序、堆排序)、交換排序(氣泡排序、快速排序)、歸併排序,順序查詢、二分查詢、雜湊查詢。
(3) 熟練運用常見排序和查詢演算法思想解決程式設計問題。
(4)瞭解幾大基本演算法:貪心演算法、分治策略、動態規劃。
5 計算機網路
(1)掌握網路的分層結構,及每層的功能特點。
(2)掌握TCP/IP的通訊原理(三次握手、四次揮手)
6 資料庫
(1)掌握複雜的SQL語句編寫。
(2)掌握資料庫的優化(SQL層面和表設計層面)。
(3)至少掌握一款資料庫產品。
(4)熟悉高併發、大資料情況下的資料庫開發。
7 Web技術
(1)掌握AJAX的工作原理。
(2)至少熟悉一款JS框架(比如JQuery)。
8 設計模式
(1)熟悉常見的設計模式。
(2)會將設計模式理論應用到實際開發中。
9 Linux
(1)熟練運用Linux常見命令。
(2)熟悉Linux作業系統基本概念及特點。
(3)熟悉Shell指令碼。
10 作業系統
(1)掌握作業系統的程式管理。
(2)瞭解作業系統的I/O。
11 正規表示式
(1)掌握常見正規表示式符號。
(2)熟練運用正規表示式解決實際問題(比如匹配電話號碼、郵箱、域名等)。
相關文章
- 成功應聘Java高階開發工程師必備的8大的面試考綱!Java工程師面試
- 面試總結——Java高階工程師面試Java工程師
- 高階工程師面試大全- 訊息中介軟體篇工程師面試
- 最近Java高階工程師面試總結Java工程師面試
- 【招聘】前端軟體工程師、高階前端軟體工程師前端軟體工程工程師
- 高階軟體測試工程師,需要掌握哪些技能工程師
- 2020年美容師(高階)考試及美容師(高階)考試申請表
- JVM知識點總覽:高階Java工程師面試必備JVMJava工程師面試
- 高階工程師面試大全- 資料庫篇工程師面試資料庫
- 面試高階前端工程師必問之流-stream面試前端工程師
- Java高階程式設計師面試大綱——備戰金三銀四跳槽季Java程式設計師面試
- 高階工程師-Java註解工程師Java
- 八年phper的高階工程師面試之路PHP工程師面試
- 某TMD公司iOS高階工程師面試回憶iOS工程師面試
- 【期末考試季】JAVA進階複習提綱Java
- 面試java高階工程師、專案經理等的常見問題面試Java工程師
- 《2018年小米高階 PHP 工程師面試題(模擬考試卷)》答案解析 [ 未指定版本 ]PHP工程師面試題
- Java高階面試-面經Java面試
- 高階前端工程師面試必備(持續更新中)前端工程師面試
- 2020年電工(高階)試題及答案及電工(高階)考試軟體
- 高階軟體工程筆記軟體工程筆記
- Java面試大綱Java面試
- 史上最全的中高階JAVA工程師-面試題彙總Java工程師面試題
- 2020年中式麵點師(高階)考試報名及中式麵點師(高階)考試試卷
- 吃透這份Java高階工程師面試497題解析,Java微服務架構訓練營Java工程師面試微服務架構
- 軟體測試工程師必會的面試題目工程師面試題
- CSSEE7023高階軟體工程CSS軟體工程
- PHP 高階工程面試題彙總PHP面試題
- 2020年美容師(高階)多少分及格及美容師(高階)報名考試
- 從一個面試官的角度談軟體工程師的面試面試軟體工程工程師
- 深圳威新軟體園, 招聘GO高階開發工程師Go工程師
- 面試5家公司的高階Java工程師,有4家給了我offer......面試Java工程師
- Java高階面試題及答案Java面試題
- 軟體設計師考試要求及考試範圍
- 2017 年軟體實施工程師筆試面試題及答案工程師筆試面試題
- 招聘.net高階工程師工程師
- 初、中、高階測試工程師成長指南工程師
- 薪資高到沒朋友,軟體測試工程師是怎麼透過招聘面試的呢?工程師面試
- 高階Java工程師必備 ----- 深入分析 Java IO (三)Java工程師