java面試手記

1.jdk jre是什麼
jdk基礎開發包 jre java運行環境,Java程序通過javac編譯生成字符行(.class)文件,給jvm編譯成機器能看懂的機器語言,意義在於將java的編譯與系統解耦開,實現在不同系統環境下的運行
2.內部類配合接口多繼承
3.多態及向下轉型
4.hashmap底層
hashmap底層可以理解爲就是一個數組,map對象通過hash取模以鏈表的形式儲存在對應的數組位置中
5.fast-failed機制
當集合發生非線程安全時拋出異常
6.BIO NIO AIO
同步與異步:用戶盯着消息的完成情況(同步)系統盯着消息的完成情況(異步)
阻塞與非阻塞:用戶等着消息完成就不幹其他事(阻塞)用戶不等消息完成就開始做其他事情(非阻塞)
7.零拷貝
數據直接在堆外內存拷貝
8.netty
nio底層通信框架(適用場景是底層)
9.消息隊列和棧
消息隊列先進先出,棧先進後出
10.AES和RSA
AES對稱加密,通信雙方用同樣的祕鑰加密解密
RSA非對稱加密,通信雙方用各自的私鑰加密,公鑰驗籤
11.jvm內存模型
年輕代,年老代,持久代
12.tcp三次握手四次分手
tcp三次握手四次分手整個過程具有原子性不可切分
13.http和tcp
http是tcp的封裝,http是應用層協議
14.悲觀鎖,樂觀鎖,無鎖算法
悲觀鎖:先鎖,認爲一定有寫的爭搶,適合頻繁寫的情況
樂觀鎖:先不鎖,認爲沒有寫的爭搶,適合寫比較少的情況
無鎖:樂觀鎖的一種實現,判斷加鎖對象的版本號判斷是否與期望版本號相同來實現數據的排他性
15.線程池
爲線程提供緩衝區,限制同時運行線程的數量,同時有維持線程降低創建銷燬性能消耗的作用
16.消息隊列
什麼時候取消息由消費者決定(客戶端也可以作爲消息的訂閱者),避免消費能力小於生產能力,並解耦了服務請求者和服務提供者
17.linux
一切皆文件,根目錄(即“/”目錄)下文件目錄的解耦思想,熟悉常用命令
18.三大範式
原子性,部分函數依賴,傳遞依賴
19.常用sql關鍵字
group by,order by,limit,distinct,explain,case when then else
20.join
內連接:不保留驅動表的空匹配
外鏈接:保留驅動表的空匹配
左外連接:左邊爲驅動表
21.mysql分表分庫,主從複製,分佈式的思考
22.redis
儲存“熱”數據,內存數據庫,避免磁盤io(實際上默認會持久化)
23.紅黑樹
消除二叉樹偏向一邊的問題的解決方案
24.nginx和lvs
負載均衡方案
25.面向服務框架
dubbo,spring boot,spring cloud
26.瞭解分佈式各領域的主流技術優勢,適用場景
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章