1. 程式人生 > >Java面試總結(2017.10)

Java面試總結(2017.10)

核心線程 數據結構 java面試 結構優化 單位 空間 可用 算法 工作經驗

Java面試總結(2017.10)

把最近一個月的面試經歷總結一下吧。期間有面試大數據和java,以下主要針對java大概總結一下。

一、某滴(套路:項目、數據結構、算法、數據庫、多線程)

1.手寫鏈表反轉、二分查找(有序循環數組 4 5 1 2 3)

2.mysql索引,哪些地方影響性能?

3.jdk1.8 hashmap 的變化? 數組+樹,數組加表 空間復雜度

4.hashmap的結構優化?

5.concurrenthashmap機制?

6.hbase,為什麽要有列族?

7.rabbitmq、redis相關?

8.公司項目架構(我把自己負責的模塊講了)

9.spark rdd?

10.內存模型,內存管理,GC?

11.js創建對象的方式(用的不多)

12.數據庫引擎,索引,哪些地方涉及到io,怎麽優化?

13.設計清理機制,redis設置過期的值,如何清理?

14.redis存儲類型?

15.springmvc的執行過程,mybatis二級緩存,緩存機制?

16.zookeeper選舉機制?

17.spring core有哪些組件?

18.數據庫隔離機制 臟讀 幻讀?

19.鎖機制?

20.synchronized(排序)與lock(不排序,吞吐量大)的區別?

21.volatile 可見性?

22.多線程實現方法,構造方法參數

二、某東(套路:項目、架構圖、高並發、JVM、數據庫)

1.自我介紹

2.畫出最熟悉項目的架構圖 講一下流程

3.根據流程問細節實現

4.並發安全實現的幾種方式 你在工作中的實現場景

5.java的同步機制

6.synchronized

7.Object方法中的方法

8.ThreadLocal機制 

9.一個類裏static方法和普通方法都用synchronized修飾會發生什麽

10.並發下hashmap死鎖問題如何解決

11.Hashtable替換HashMap

12.Collections.synchronizedMap將HashMap包裝起來

13.ConcurrentHashMap替換HashMap

14.jvm內存模型 jvm如何處理String str = new String(“abc”)

15.gc的機制和算法 (何時觸發full gc等)

16.一談最近看過的技術書籍

17.服務器/數據庫高並發/高可用解決方案

18.講一下一次典型寫操作的流程 創建幾個類 如何提升mysql 寫操作的最大並發量

19.查詢的優化

20.如何保證高訪問量下讀寫數據的一致

21.創建表時要註意的事項 什麽時候需要冗余設計

22.哪些字段要建索引 同一張表建多個索引的優缺點

23.你研究過最難的算法是哪個

24.Nginx裏正則的使用

25.Springmvc裏面都有什麽註解 spring aop底層用什麽實現

26.動態代理,反射

27.http狀態碼302 代表什麽

28.cookie請求頭包含哪些內容

29.不用session如何保存用戶數據

30.單例為什麽需要雙重檢查

31.js對象的種類 js如何實現map結構

總結:連續3輪面試 無筆試 對於有工作經驗的會問細節 具體到代碼實現

三、某米(套路:多線程、數據結構、算法、數據庫、linux)

1.柵欄(cyclic),閉鎖\遞減鎖(countdownlatch)

2.多線程,5種狀態,多線程方法參數(核心線程池數量、最大數量、超時時間、時間單位、拒絕服務器助手(handler,隊列))

3.hashmap源碼,參數

4.空間復雜度、時間復雜度

5.兩個線程,分別輸出1,2。如何實現1,2,1,2,1,2,.....交換輸出

6.二分查詢,返回下標,

7.快速排序

8.數據庫,索引,

9.flume 與 storm的區別

10.redis如何存set\list等值

11.volatile作用

12.悲觀鎖,樂觀鎖什麽情境下用

13.如何實現秒殺

14.三維數組賦值,三層for循環,用一個循環?

15.linux查詢某一個文件的IP

16.查找目錄下的所有文件中是否含有某個字符串

17.linux通過關鍵詞查詢 命令 xiaomi.com

18.輸出日誌的最後5行 tail -f 5 ./log

最後總結:以上列舉三家公司面試情況(兩年工作經驗),面試問題大同小異,換湯不換藥。面試時間一般在2個小時左右,我經歷最長的一次是3個半小時。面試一般是三輪(兩輪技術面,一輪HR面),經歷最多的面試是四輪(三輪技術面,一輪HR面)。大公司更註重基礎,比如:數據結構、算法、索引、JVM、優化等,小公司更偏重應用,比如:Spring、struts2、mybatis、數據庫等的使用。

Java面試總結(2017.10)