中文精品一区二区_久99久免费精品视频_亚洲第一福利天堂在线观看视频网站_国产经典aⅴ三级观看

您現(xiàn)在所在的位置:首頁 >學員就業(yè) > 就業(yè)寶典 > Java工程師面試最愛問的11類問題

Java工程師面試最愛問的11類問題

來源:奇酷教育 發(fā)表于:

  當前,市面上有《Java XX寶典》類似的圖書,而且圖書中的內容都著重在講解Java最為基礎的部分,最嚴重的是,里面有著大量錯誤的內容,

  當前,市面上有《Java XX寶典》類似的圖書,而且圖書中的內容都著重在講解Java最為基礎的部分,最嚴重的是,里面有著大量錯誤的內容,極具誤導性。另外,網上也有各種各樣的Java面試題,很多也是著重在Java語言基礎上。
  實際上,如果要應聘高級開發(fā)工程師職務,僅僅懂得Java的基礎知識是遠遠不夠的,還必須懂得常用數(shù)據(jù)結構、算法、網絡、操作系統(tǒng)等知識。因此本文介紹一位從業(yè)的老司機的經驗,他綜合自己的經歷,整理了一份大公司對Java高級開發(fā)工程師職位的考核綱要,對你一定有幫助:
Java基礎
  1.1 Collection和Map
  (1)掌握Collection和Map的繼承體系。
  (2)掌握ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、WeakHashMap、EnumMap、TreeMap、HashTable的特點和實現(xiàn)原理。
  (3)掌握CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap的實現(xiàn)原理和適用場景。
  1.2 IO
  (1)掌握InputStream、OutputStream、Reader、Writer的繼承體系。
  (2)掌握字節(jié)流(FileInputStream、DataInputStream、BufferedInputStream、FileOutputSteam、DataOutputStream、BufferedOutputStream)和字符流(BufferedReader、InputStreamReader、FileReader、BufferedWriter、OutputStreamWriter、PrintWriter、FileWriter),并熟練運用。
  (3)掌握NIO實現(xiàn)原理及使用方法。
  1.3 異常
  (1)掌握Throwable繼承體系。
  (2)掌握異常工作原理。
  (3)了解常見受檢異常(比如FileNotFoundException)、非受檢異常(比如NullPointerException)和錯誤(比如IOError)。
  1.4 多線程
  (1)掌握Executors可以創(chuàng)建的三種(JAVA8增加了一種,共四種)線程池的特點及適用范圍。
  (2)掌握多線程同步機制,并熟練運用。
  1.5 Socket
  (1)掌握Socket通信原理。
  (2)熟練使用多線程結合Socket進行編程。
Java虛擬機
  2.1 JVM內存區(qū)域劃分
  (1)掌握程序計數(shù)器、堆、虛擬機棧、本地方法棧、方法區(qū)(JAVA8已移除)、元空間(JAVA8新增)的作用及基本原理。
  (2)掌握堆的劃分:新生代(Eden、Survivor1、Survivor2)和老年代的作用及工作原理。
  (3)掌握JVM內存參數(shù)設置及調優(yōu)。
  2.2 類加載
  (1)掌握類的加載階段:加載、鏈接(驗證、準備、解析)、初始化、使用、卸載。
  (2)掌握類加載器分類及其應用:啟動類加載器、擴展類加載器、應用程序類加載器、自定義加載器。
J2EE
  (1) 掌握JSP內置對象、動作及相關特點和工作原理。
  (2) 掌握Servlet的特點和工作原理。
  (3) 掌握Spring框架的IOC和AOP實現(xiàn)原理(反射和動態(tài)代理)。
  (4) 至少掌握一個MVC框架(Spring MVC,Struts等)的工作原理,并熟練運用。
  (5) 至少掌握一個ORM框架(Hibernate,MyBatis等)的工作原理,并熟練運用。
數(shù)據(jù)結構與算法
  (1)掌握線性表和樹的特點并熟練運用。
  (2)掌握常用排序和查找算法:插入排序(直接插入排序、希爾排序)、選擇排序(直接選擇排序、堆排序)、交換排序(冒泡排序、快速排序)、歸并排序,順序查找、二分查找、哈希查找。
  (3) 熟練運用常見排序和查找算法思想解決編程問題。
  (4)了解幾大基本算法:貪心算法、分治策略、動態(tài)規(guī)劃。
計算機與網絡
  (1)掌握網絡的分層結構,及每層的功能特點。
  (2)掌握TCP/IP的通信原理(三次握手、四次揮手)
數(shù)據(jù)庫
  (1)掌握復雜的SQL語句編寫。
  (2)掌握數(shù)據(jù)庫的優(yōu)化(SQL層面和表設計層面)。
  (3)至少掌握一款數(shù)據(jù)庫產品。
  (4)熟悉高并發(fā)、大數(shù)據(jù)情況下的數(shù)據(jù)庫開發(fā)。
Web技術
  (1)掌握AJAX的工作原理。
  (2)至少熟悉一款JS框架(比如JQuery)。
設計模式
  (1)熟悉常見的設計模式。
  (2)會將設計模式理論應用到實際開發(fā)中。
Linux
  (1)熟練運用Linux常見命令。
  (2)熟悉Linux操作系統(tǒng)基本概念及特點。
  (3)熟悉Shell腳本。
操作系統(tǒng)
  (1)掌握操作系統(tǒng)的進程管理。
  (2)了解操作系統(tǒng)的I/O。
正則表達式
  (1)掌握常見正則表達式符號。
  (2)熟練運用正則表達式解決實際問題(比如匹配電話號碼、郵箱、域名等)。