最近在秋招中,將常見面試題統計下,作此博客。
併發(線程)
- 爲什麼不推薦使用Executors直接創建線程池
- 線程池參數分別代表什麼?怎麼配置才合理?
- JVM中鎖的分類,偏向鎖、輕量級鎖、重量級鎖
操作系統
- 死鎖產生原因,如何避免
- 進程與線程(區別)
- 內核級線程與用戶級線程
- 協程
- 進程通信方式
- 線程通信方式
計算機網絡
- POST與GET的區別
- Http1.0/1.1/2.0區別
- TCP與UDP的區別
- 三次握手
- 四次揮手
- 滑動窗口
- 擁塞控制
- 慢開始、快重傳
- IO多路複用
- HTTPS(HTTP的漏洞)
- 訪問淘寶購買商品的網絡請求過程
- 兩次握手後,發送某種情況,突然不能第三次握手了,此時會發生什麼?
- 四次揮手爲什麼是2MSL時間
- 各種狀態碼(501、502、503、504分別是什麼)
Java基礎
- String、StringBuilder、StringBuffer區別
- 重載和重寫區別
- HashMap
- ConcurrentHashMap
- 創建線程的方式
- synchronized和lock的原理
- java動態代理和cglib的區別
JVM
- 查看JVM堆棧情況命令
- JVM初始化內存命令
- 堆棧調優的參數
- 爲什麼要移出永生代,改爲元空間
- jvm內存區域
- jvm full gc定位異常代碼位置
- 老年代的gc算法
- 複製算法的缺點
- 標記清除法的優缺點
- 標記整理法的優缺點
- 操作數棧怎麼實現i=1+2的
- 新建對象jvm的內存情況
Mysql
- 什麼情況下產生死鎖,場景
- %在左邊怎麼實現索引
- mvcc的實現
- MyISAM與InnoDB的區別
- 數據庫調優
- B+索引和hash索引區別
Redis
- Redis 數據結構及使用場景
- 數據結構底層實現
- 持久化方式及應用場景
- redis 快照模式 修改時間的參數
- redis持久化更改快照和aof的方法
- 快照和aof的優缺點,應用場景
- redis 怎麼知道 主從哨兵切換的
- 1主2從怎麼推選主的
- 哨兵充當的角色是什麼
- 分佈式鎖的實現
Spring
- Spring中的設計模式
- SpringIOC原理
- SpringAOP原理
- Bean生命週期
SpringMVC
- SpringMVC原理
- SpringMVC中的設計模式
Mybatis
- Mybatis原理
- Mybatis中的設計模式
- Mybatis #和$的區別
微服務
- 談談你對微服務和單體架構的理解
- SpringCloud的組件
- SpringCloud中各組件是如何相互調用的
- 註冊中心是怎麼監聽各服務的
- 分佈式鎖
設計模式
- 各種設計模式的UML圖
MQ
- 消息隊列的作用
- RabbitMQ的推拉模型的實現
- RabbitMQ生產者丟數據
- RabbitMQ消費隊列丟數據
- RabbitMQ消費者丟數據
- 使用消息隊列的優缺點
其他
- Cookie、Session、Token的優缺點
- 單點登錄的實現
- Java代碼是怎麼運行起來的(從操作系統到JVM到Java代碼一步步實現,講得越詳細越好)
- 爬蟲怎麼實現的
- 怎麼防止ip被禁用
- 代理池怎麼開的
- csv和excel區別
- Selenium的使用
- poi使用場景及性能瓶頸
- 項目一定要熟悉(會問表設計、設計模式使用、遇到的問題及解決方案、詳細的業務細節、同時會問高併發如何控制)
hr
- 優缺點
- 未來3-5年計劃
- 如果作爲一個項目組長,本預期6個月的項目,現要求你3個月完成,你如何處理
- 對馬雲“福報”的看法
- 爲什麼不繼續在實習公司轉正
- 實習最大的收貨
- 校園中擔任了什麼學生幹部,組織過什麼活動
- 爲什麼選擇我們公司
- …