首頁 > 後端開發 > php教程 > Java資深軟體工程師面試考綱

Java資深軟體工程師面試考綱

WBOY
發布: 2016-07-29 09:03:16
原創
1265 人瀏覽過

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、FileWterFileReader、BufferedWriter、OutputWriter、PrintWriter、FileWter),並熟練運用。
(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工程師的相關的面試問題,你還有什麼其他的需要補充的麼。
兄弟會高洛峰免費收徒:http://www.hdb.com/party/lzcw-comm.html
免費領取LAMP兄弟連原創PHP影片教學光碟/《細講PHP》精要版,詳情諮詢官網客服:
http://www.lampbrother.net
【兄弟連IT教育】學PHP、Linux、HTML5、UI、Android等影片教學(課件+筆記+影片)!
網盤教學下載:http://pan.baidu.com/s/1sjOJiAL

以上就介紹了Java高級軟體工程師面試考綱,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板