目錄
1. HashMap是怎么解決沖突的 是用什么數據結構實現的
2. 為什么hashmap的初始長度為16
3. 多線程的核心參數
4. 多線程怎么工作的
5. CISCS是怎么實現的
6. JUC知識
7. C++和java的區別
8. JVM底層編譯的東西
9. 公平鎖和非公平鎖
10. 有人惡意攻擊你的平臺每秒發送幾萬次的請求 該怎么做
1. HashMap是怎么解決沖突的 是用什么數據結構實現的
Hashmap采用鏈地址法來解決哈希沖突。hashmap在該索引位置維護一個鏈表結構。新的鍵值對被添加到鏈表的頭部而不是尾部。
實現的數據結構:數組+鏈表?
2. 為什么hashmap的初始長度為16
因為做hashcode是按位與的,更加方便計算位置
3. 多線程的核心參數
UNIT:時間單位
corepoolsize:核心線程數
maximumpoolsize:最大線程數
keepalivetime:線程空閑時間
threadfactory:線程工廠
handler:拒絕策略
4. 多線程怎么工作的
核心是通過共享進程資源,實現并發執行。
5. CISCS是怎么實現的
通過分層架構實現工業現場控制與管理系統的集成。分成架構:設備層,控制層,管理層。
6. JUC知識
是java處理并發編程的核心工具包,提供線程安全的并發控制。
核心組件功能:線程池框架:通過ThreadPoolExecutor管理生命周期。
? ? ? ? ? ? ? ? ? ? ? ? ?鎖機制:locks包
? ? ? ? ? ? ? ? ? ? ? ? ?同步工具類:CountDownLatch:等待多線程完成。
7. C++和java的區別
編譯方式的差異:C++直接編譯為機器碼
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Java:先編譯為字節碼,再通過JVM解釋執行
面向對象差異:C++支持多重繼承
? ? ? ? ? ? ? ? ? ? ? ? ? JAVA僅單繼承
8. JVM底層編譯的東西
首先JVM是虛擬機,是可以跨平臺的。
執行流程:java源碼,javac編譯,.class字節碼,JVM加載
采用雙模式執行引擎:解釋執行模式;編譯執行模式
9. 公平鎖和非公平鎖
公平鎖:多個線程按照申請鎖的順序來獲取鎖,類似于排隊。
非公平鎖:順序并不是按照申請的,可能后申請的先活得鎖。在高并發系統下優先使用。
10. 有人惡意攻擊你的平臺每秒發送幾萬次的請求 該怎么做
1. IP黑名單與限流 :使用iptables限制單IP連接數。
2. 接口頻率限制:基于Redis實現分布式限流。
3. 使用消息隊列(如Kafka)緩存請求,避免服務器過載。