1. 程式人生 > >Java/大資料 實習菜雞面試總結

Java/大資料 實習菜雞面試總結

簡單的也記不清了,一部分記得住的。

Java

  1. HashMap 底層資料模型?為什麼採用連結串列雜湊?java8和之前的區別?為什麼採用紅黑樹。

    • 擴容機制。為什麼擴容2倍?
    • 如何解決Hash衝突?
    • 當向連結串列插入新Entry時插入頭部還是尾部?Java8的區別?
    • hashmap為什麼執行緒不安全。如何實現執行緒安全?
    • synchronized,synchronizedmap,concurrenthashmap的區別和概念?concurrenthashmap為什麼快?
    • synchronized關鍵字是否可以載入 .class
  2. 內部類有哪些,具體用途。

  3. Spring中用到了哪些設計模式?具體用在哪?手寫單例模式

  4. 單例模式的雙檢鎖是什麼?

  5. Mybatis如何實現批量插入?除foreach之外的方法?

  6. Spring是多執行緒還是單執行緒?

  7. 執行緒池的優點和用處?

  8. 新生代什麼時候升老年代?GC流程? 永久代和元空間?

  9. token的優點。如何避免偽造token。

  10. 如何實現分散式Session。

  11. 悲觀鎖和樂觀鎖的使用場景和實現手段。

  12. 如何實現Cookie跨域?

  13. HTTPS的加密原理?HTTP1.1和1.0的區別?長連線和短連線的區別?

  14. TCP和UDP的使用場景?

  15. Spring和Mybatis的事務管理。具體場景如何使用?

  16. 什麼叫執行緒安全什麼叫不安全?手改程式碼實現執行緒安全。

  17. 手寫動態代理。

  18. Spring AOP具體用在哪?

  19. 如何避免死鎖?

  20. 執行緒排程演算法?

資料庫

  1. 什麼場景下使用聯合索引?模糊查詢如何使用索引?全文索引的使用?
  2. 為什麼聯合索引匹配最左原則?
  3. 優化查詢的手段?
  4. 手寫多表關聯查詢SQL。
  5. Redis每個資料型別的適用場景?Redis持久化。Redis的IO模型。
  6. Redis實現秒殺系統。
  7. NoSQL的優缺點和使用場景。
  8. HBASE的儲存結構,設計rowKey.
  9. Mysql的資料引擎,使用場景和區別。
  10. Redis是單執行緒還是多執行緒。

演算法

  1. 各種樹的區別,紅黑樹的用途,如何保持平衡?手寫實現。
  2. 手寫排序演算法和一些演算法題。
  3. 推薦演算法。

大資料

  1. MapReduce的原理。
  2. sqoop的使用。
  3. 根據場景手寫HSQL。
  4. Hadoop和Spark的使用場景。
  5. 正則爬蟲的設計。
  6. kafka的使用。
  7. zookeeper的用途。
  8. 主從結構的一些討論。
  9. Python的一些問題。

Linux

  1. 關鍵字檢索。統計行數。效能監控。檔案查詢。
  2. 常用命令,具體使用。

其他

  1. logstash如何實現增量更新。

  2. ElasticSearch的分詞策略。

  3. ElasticSearch的資料型別。

  4. ElasticSearch的原理。

  5. Nginx的具體配置和用途。