這部分內容,參考了《面試官的七種武器》一文。 電面與face2face的面試還是有區別的,很多考察方式無法使用。
從簡歷聊起,逐漸進入正題。
Java語法
重載與重寫的區別?
java如何實現多態?
StringBuilder StringBuffer區別?
Nested Class相關概念?
Inner Class, Static Nested Class的使用?
如何在outer world中new一個nested class?
1 public class Outer { 2 3 public class Inner { 4 5 } 6 } 7 8 9 public class Tester { 10 public static void main() { 11 Outer outer = new Outer(); 12 Inner inner = outer.new Inner(); 13 } 14 }
final finally finalized關鍵字的區別?
static關鍵字都有哪些使用場景(static方法必須,說出static block及格,說出import static會加分)。
初始化塊?
lib
jdk中常見的framework,比如IO
Collection:
HashMap
juc並發框架:
ConcurrentHashMap的實現原理
volatile\sychronized關鍵字的使用
你常用的並發容器? BlockingQueue的實現ABQ和LBQ的區別?
顯式鎖與內置鎖的區別?
AQS?
原子操作?
對於Spring來說,要重點掌握IOC和AOP的實現原理,其中AOP要知道動態Proxy和CGLIB兩種實現方式。
對於ORM框架,要重點掌握MyBatis和Hibernate的實現原理和不同點。
JVM
JVM的運行時內存區域如何划分?
JVM內存模型
GC機制: GC: hotspot系列虛擬機有哪些常用的GC算法?
JVM的性能調優
類加載機制 雙親委派機制
JIT技術,為什么Oracle的Java虛擬機叫做HotSpot?
手寫代碼
二分查找,快排的思想、時間復雜度分析等等
單鏈表的反轉、判斷單鏈表是否相交
反轉二叉樹、二叉樹的層級遍歷 如何使用隊列來模擬棧的操作?
手寫生產者消費者原型,手寫單例模式
設計模式
單例(線程安全的單例?在Java中雙重檢查加鎖為什么會失效?)
你使用過的設計模式有哪些? 什么是策略模式?
Java開發中的其他環節
常見的Web服務器有哪些?
Nignx與Apache的原理及不同
了解過哪些開源框架?
myBatis 與Hibernate相比,主要優勢是?
Spring框架的主要特性是?(AOP和IOC)。
Redis持久化有哪些方式?
什么是一致性Hash?
什么是數據庫事務,如何實現數據庫事務? 如何實現分布式事務?
SQL性能優化方法:select * from table1; 如果有上百萬條記錄,如何優化? 覆蓋索引。
做沒做過運維? ps iostat netstat vmstat之類的命令如何使用,等。JVM監控主要是如何獲得java core和heap dump,以及如何分析他們,另外一些簡單監控命令如jstack和jmap jhat等也要了解。
系統架構設計
如何設計電商秒殺系統?描述如何從各個環節,減少服務器的壓力?
其他
項目中最大的挑戰? 如何解決的?
非技術
薪資?加班? 職業規划?
參考文獻:
http://www.cnblogs.com/lanxuezaipiao/p/3371224.html
