日韩 亚洲一区二_久久vs国产综合色大全_国产精品福利在线_欧美在线一级A片免费观看欧美在线_女同性毛片60分钟

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

Java工程師面試最愛(ài)問(wèn)的11類(lèi)問(wèn)題

來(lái)源:奇酷教育 發(fā)表於:

  當(dāng)前,市面上有《Java XX寶典》類(lèi)似的圖書(shū),而且圖書(shū)中的內(nèi)容都著重在講解Java最為基礎(chǔ)的部分,最嚴(yán)重的是,裡面有著大量錯誤的內(nèi)容,

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