第十次面試,可以召喚某些東西了
Java
1. 常用的集合
List,Map,Set
COW,ConCurrentHashMap
保存許多ip用什麼List
2. HashMap的底層數據結構
HashMap進行get的時間複雜度
O(nlogn)
多線程HashMap的操作
3. 線程不安全會出現什麼問題
數據不一致,死鎖
4. 用多線程的場景
漏桶算法,生產者消費者模式
5. 線程池的使用場景
也可以用來限流
6. 多線程的使用要注意什麼
加鎖解鎖,避免死鎖,線程通信
7. Spring和數據庫的事物
本地事物,傳播級別
8. RPC調用過程
- rpc client封裝請求參數,接口名,方法名和類型名
- client通過序列化工具把參數序列化爲字節流通過網絡傳遞到rpc server
- rpc server接收到字節流會反序列化
- server對反序列化後的數據進行解析拿到相應參數
設計模式
9. 說下裝飾者模式
DB
10. MyISAM和InnoDB分別適合什麼場景
先說特點,日誌,事物,加鎖,行號,索引等等不同
MyISAM適合大量select,InnoDB適合結構化操作
11. B+Tree的特點
12. MySQL如何支持事物
ACID,通過redo,undo log,加鎖,MVCC
13. 兩個MySQL如何保證事物一致性
- 使用MySQL自己保證的一個數據同步機制
- 使用支持分佈式事物的事物管理器
14. 如何優化一條SQL
先check是select還是結構化SQL
15. 如何建立索引
前綴索引,自定義hash,最左前綴原則,組合索引,覆蓋索引
16. Mybatis爲什麼不能用Select *
- 增加查詢分析器解析成本
- 增減字段容易與 resultMap 配置不一致
- 無用字段增加網絡消耗,尤其是 text 類型的字段。
17. 爲什麼用數據庫連接池
連接池保證了複用,降低了時間損耗和空間消耗
18. 瞭解過HBASE嗎
HBase是建立在Hadoop文件系統之上的分佈式面向列的數據庫,橫向擴展
項目
19. 秒殺系統考慮哪些方面
TPS和接口防刷
20. 如何優化
cache,mq
21. redis突然掛了怎麼辦
rdb+aof的持久化,redis掛了之後要及時拋出異常,通過mq的事物一致性
22. rocketMQ的事物機制
兩階段提交,producer先prepare,然後broker輪詢producer是否commit,如果commit則整個事物提交
23. 爲什麼要限流
限流方法主要有三種,一個是計數器限流,漏桶限流和令牌桶限流
多機限流和單機限流的區別
其他
24. 阿里巴巴編碼規範的啓發
覆盤
面試要一直有,不然我連着三天都感覺手生了。面試官跟我說的挺多的,包括如何轉正啊什麼的,反正面試官挺好的。
今天阿里系統開放,我發現我釘釘一面也過了哈哈
現在有三個面試官通知我,不知道選哪個,害。