以下問題是最近4次面試中總結的題目:
一定會問到的知識點:集合,多線程,流,動态代理,反射,架構,資料庫,linux,分布式架構的概念
1、HashMap底層原理
2、HashMap如何解決哈希碰撞
3、ConcurrentHashMap與HashTable的差別
4、了解的鎖有哪些?
5、synchronized底層原理
6、Lock鎖底層原理
7、Lock實作類
8、synchronized與Lock鎖的差別
9、CAS無鎖機制(如何解決ABA問題)
10、什麼是AQS
11、線程池的原理
12、線程池有哪些種類,特點
13、springIOC和AOP原理
14、動态代理的實作方式
15、建立對象的方式
16、類加載機制---雙親委派機制
17、JVM記憶體模型
18、垃圾回收機制
19、垃圾回收算法
20、垃圾回收器的種類
21、netty的原理
22、BIO,NIO,AIO的差別
23、static和final的差別:
24、String, StringBuffer,StringBuilder去差別
25、流的種類有哪些?
26、位元組流如何轉化為字元流?
27、什麼是序列化和反序列化
28、如何不将一個字段序列化
29、深克隆和淺克隆的差別?
30、jvm類加載機制
31、什麼是雙親委派模型
32、什麼是泛型
33、泛型在什麼期有效
34、反射的應用場景
35、反射的缺點
36、如何避免反射的缺點
37、字元串常量池的概念
38、如何根據業務建立表
39、多線程suspend()、resume()
40、多線程環境下并發修改hashtable 是否會引起Iterator疊代失敗
41、Java中的那些基本類型屬于原生類,而數組是引用類型,不屬于原生類,可以看成是一種對象。
42、擷取集合中的最大和最小值
44、mybatis如何調用存儲過程
45、實作多線程的方式:繼承Thread類,實作Runnable接口,實作Callable接口
46、動态代理實作方式
47、list中常用的方法
48、ArrayList線程不安全怎麼解決
49、jvm參數設定依據,eden:from:to區的比例和依據
50、多線程相關,手寫相關多線程題目
51、系統挂掉之後怎麼排查問題
52、怎麼排查gc記憶體溢出是哪個對象導緻的問題
53、怎麼攻擊雙親委派機制,讓jvm加載和系統類相同的包名,以及怎麼預防
54、一個方法中如何管理兩個事物
55、頁面登入密碼如何加密傳至背景
56、spring中class循環依賴如何解決
57、linux檢視記憶體和核數指令
lscpu(檢視cpu), lsmem(檢視記憶體大小), df(檢視硬碟大小)
58、linux查詢cpu使用情況
top