Java/大資料 實習菜雞面試總結
阿新 • • 發佈:2018-12-18
簡單的也記不清了,一部分記得住的。
Java
-
HashMap 底層資料模型?為什麼採用連結串列雜湊?java8和之前的區別?為什麼採用紅黑樹。
- 擴容機制。為什麼擴容2倍?
- 如何解決Hash衝突?
- 當向連結串列插入新Entry時插入頭部還是尾部?Java8的區別?
- hashmap為什麼執行緒不安全。如何實現執行緒安全?
- synchronized,synchronizedmap,concurrenthashmap的區別和概念?concurrenthashmap為什麼快?
- synchronized關鍵字是否可以載入 .class
-
內部類有哪些,具體用途。
-
Spring中用到了哪些設計模式?具體用在哪?手寫單例模式
-
單例模式的雙檢鎖是什麼?
-
Mybatis如何實現批量插入?除foreach之外的方法?
-
Spring是多執行緒還是單執行緒?
-
執行緒池的優點和用處?
-
新生代什麼時候升老年代?GC流程? 永久代和元空間?
-
token的優點。如何避免偽造token。
-
如何實現分散式Session。
-
悲觀鎖和樂觀鎖的使用場景和實現手段。
-
如何實現Cookie跨域?
-
HTTPS的加密原理?HTTP1.1和1.0的區別?長連線和短連線的區別?
-
TCP和UDP的使用場景?
-
Spring和Mybatis的事務管理。具體場景如何使用?
-
什麼叫執行緒安全什麼叫不安全?手改程式碼實現執行緒安全。
-
手寫動態代理。
-
Spring AOP具體用在哪?
-
如何避免死鎖?
-
執行緒排程演算法?
資料庫
- 什麼場景下使用聯合索引?模糊查詢如何使用索引?全文索引的使用?
- 為什麼聯合索引匹配最左原則?
- 優化查詢的手段?
- 手寫多表關聯查詢SQL。
- Redis每個資料型別的適用場景?Redis持久化。Redis的IO模型。
- Redis實現秒殺系統。
- NoSQL的優缺點和使用場景。
- HBASE的儲存結構,設計rowKey.
- Mysql的資料引擎,使用場景和區別。
- Redis是單執行緒還是多執行緒。
演算法
- 各種樹的區別,紅黑樹的用途,如何保持平衡?手寫實現。
- 手寫排序演算法和一些演算法題。
- 推薦演算法。
大資料
- MapReduce的原理。
- sqoop的使用。
- 根據場景手寫HSQL。
- Hadoop和Spark的使用場景。
- 正則爬蟲的設計。
- kafka的使用。
- zookeeper的用途。
- 主從結構的一些討論。
- Python的一些問題。
Linux
- 關鍵字檢索。統計行數。效能監控。檔案查詢。
- 常用命令,具體使用。
其他
-
logstash如何實現增量更新。
-
ElasticSearch的分詞策略。
-
ElasticSearch的資料型別。
-
ElasticSearch的原理。
-
Nginx的具體配置和用途。