大廠面試核心知識點梳理

轉自:https://maimai.cn/article/detail?fid=1376287358&efid=W5_jYkpsH_eRLg3yD3tFwg

前言:

相信在前不久的金九銀十跳槽季中,有許多同學面試或者跳槽失利的就目前國內的面試模式來講,在面試前積極的準備面試,複習整個 Java 知識體系將變得非常重要,可以很負責任的說一句,複習準備的是否充分,將直接影響你入職的成功率。

但很多小夥伴卻苦於沒有合適的資料來回顧整個 Java 知識體系,或者有的小夥伴可能都不知道該從哪裏開始複習。

我偶然從一個網友羣中發現了整理的這份資料,不論是從整個 Java 知識體系,還是從面試的角度來看,都是一份含技術量很高的資料。下面的文章將帶大家認識到自己不足的點。

 

 

1.JVM

JVM 是可運行 Java 代碼的假想計算機 ,包括一套字節碼指令集、一組寄存器、一個棧、 一個垃圾回收,堆 和 一個存儲方法域。JVM 是運行在操作系統之上的,它與硬件沒有直接 的交互。

2. JAVA 集合

集合類存放於 Java.util 包中,主要有 3 種:set(集)、list(列表包含 Queue)和 map(映射)。

  1. Collection:Collection 是集合 List、Set、Queue 的最基本的接口。
  2. Iterator:迭代器,可以通過迭代器遍歷集合中的數據
  3. Map:是映射表的基礎接口

3. JAVA 多線程併發

4. JAVA 基礎

1JAVA 異常分類及處理

2JAVA 反射

3JAVA 註解

4JAVA 內部類

5JAVA 泛型

6JAVA 序列化(創建可複用的 Java 對象)

7JAVA 複製

5. Spring 原理

他是一個全面的,企業應用開發一站式的解決方案,貫穿表現層,業務層,持久層。但是spring仍然可以和其他框架無縫整合。

1.Spring 特點

2.Spring 核心組件

3.Spring 常用模塊

4.Spring 主要包

5.Spring 常用註解

6.Spring 第三方結合

7.Spring IOC 原理

8.Spring APO 原理

9.Spring MVC 原理

10.Spring Boot 原理

11.JPA 原理

12.Mybatis 緩存

13.Tomcat 架構

6. 微服務

1. 服務註冊發現

2.API 網關

3 .配置中心

4.事件調度(kafka)

5.服務跟蹤(starter-sleuth)

6.服務熔斷(Hystrix)

7.API 管理

7. Netty 與 RPC

1.Netty 原理

2.Netty 高性能

3.Netty RPC 實現

4.RMI 實現方式

5.Protoclol Buffer

6.Thrift

8,網絡

1.網絡 7 層架構

2.TCP/IP 原理

3.TCP 三次握手/四次揮手

4.HTTP 原理

5.CDN 原理

9. 日誌

1.Slf4j

2.Log4j

3.LogBack

4.ELK

10. Zookeeper

Zookeeper 是一個分佈式協調服務,可用於服務發現,分佈式鎖,分佈式領導選舉,配置管理等。 Zookeeper 提供了一個類似於 Linux 文件系統的樹形結構(可認爲是輕量級的內存文件系統,但 只適合存少量信息,完全不適合存儲大量文件或者大文件),同時提供了對於每個節點的監控與 通知機制。

1.Zookeeper 角色

2.Zookeeper 工作原理(原子廣播)

3.Znode 有四種形式的目錄節點

11. Kafka

Kafka 是一種高吞吐量、分佈式、基於發佈/訂閱的消息系統,最初由 LinkedIn 公司開發,使用 Scala 語言編寫,目前是 Apache 的開源項目。

1. Kafka 數據存儲設計

2. 生產者設計

3. 消費者設計

12. RabbitMQ

RabbitMQ 是一個由 Erlang 語言開發的 AMQP 的開源實現。

1. RabbitMQ 架構

2. Exchange 類型

13. Hbase

base 是分佈式、面向列的開源數據庫(其實準確的說是面向列族)。HDFS 爲 Hbase 提供可靠的 底層數據存儲服務,MapReduce 爲 Hbase 提供高性能的計算能力,Zookeeper 爲 Hbase 提供 穩定服務和 Failover 機制,因此我們說 Hbase 是一個通過大量廉價的機器解決海量數據的高速存 儲和讀取的分佈式數據庫解決方案。

1. 列式存儲

2. Hbase 核心概念

3. Hbase 核心架構

4. Hbase 的寫邏輯

5. HBase vs Cassandra

14. MongoDB

MongoDB 是由 C++語言編寫的,是一個基於分佈式文件存儲的開源數據庫系統。在高負載的情 況下,添加更多的節點,可以保證服務器性能。MongoDB 旨在爲 WEB 應用提供可擴展的高性能 數據存儲解決方案。 MongoDB 將數據存儲爲一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似 於 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。

15. Cassandra

Apache Cassandra 是高度可擴展的,高性能的分佈式 NoSQL 數據庫。 Cassandra 旨在處理許 多商品服務器上的大量數據,提供高可用性而無需擔心單點故障。 Cassandra 具有能夠處理大量數據的分佈式架構。 數據放置在具有多個複製因子的不同機器上, 以獲得高可用性,而無需擔心單點故障。

1. 數據模型

2. Cassandra 一致 Hash 和虛擬節點

3. Gossip 協議

4. 數據複製

5. 數據寫請求和協調者

6. 數據讀請求和後臺修復

7.數據存儲(CommitLog、MemTable、SSTable)

8. 二級索引(對要索引的 value 摘要,生成 RowKey)

9.數據讀寫

16. 設計模式

1 .設計原則

2.工廠方法模式

3.抽象工廠模式

4.單例模式

5.建造者模式

6.原型模式

7. 適配器模式

8.裝飾器模式

9.代理模式

10.外觀模式

11.橋接模式

12.組合模式

13.享元模式

14.策略模式

15.模板方法模式

16.觀察者模式

17.迭代子模式

18.責任鏈模式

19.命令模式

20.備忘錄模式

21.狀態模式

22.訪問者模式

23.中介者模式

24.解釋器模式

17. 負載均衡

負載均衡 建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶 寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。

1.四層負載均衡 vs 七層負載均衡

2.負載均衡算法/策略

3.LVS

4.Keepalive

5.Nginx 反向代理負載均衡

6.HAProxy

18. 數據庫

1 存儲引擎

2 索引

3 數據庫三範式

4 數據庫是事務

5 存儲過程(特定功能的 SQL 語句集)

6 觸發器(一段能自動執行的程序)

7 數據庫併發策略

8 數據庫鎖

9 基於 Redis 分佈式鎖

10 分區分表

11 兩階段ᨀ交協議

12 三階段ᨀ交協議

13 柔性事務

14 CAP

29. 一致性算法

1.Paxos

2.Zab

3.Raft

4.NWR

5.Gossip

6.一致性 Hash

20. JAVA 算法

1.二分查找

2.冒泡排序算法

3.插入排序算法

4.快速排序算法

5. 希爾排序算法

6. 歸併排序算法

7.桶排序算法

8. 基數排序算法

9. 回溯算法

10. 最短路徑算法

11. 最大子數組算法

12. 最長公共子序算法

13. 最小生成樹算法

21. 數據結構

1 棧(stack)

2 隊列(queue)

3 鏈表(Link)

4 散列表(Hash Table)

5 排序二叉樹

6 紅黑樹

7 B-TREE

8 位圖

22. 加密算法

1.AES

2.RSA

3.CRC

4.MD5

23.分佈式緩存

1.緩存雪崩

2.緩存穿透

3.緩存穿透

4.緩存預熱

5.緩存更新

6.緩存降級

24. Hadoop

就是一個大數據解決方案。它提供了一套分佈式系統基礎架構。 核心內容包含 hdfs 和 mapreduce。hadoop2.0 以後引入yarn. hdfs 是提供數據存儲的,mapreduce 是方便數據計算的。

1. HDFS

2. MapReduce

3. Hadoop MapReduce 作業的生命週期

25. Spark

Spark 提供了一個全面、統一的框架用於管理各種有着不同性質(文本數據、圖表數據等)的數據 集和數據源(批量數據或實時的流數據)的大數據處理的需求。

1.概念

2.核心架構

3.核心組件

4.SPARK 編程模型

5.SPARK 計算模型

6.SPARK 運行流程

7.SPARK RDD 流程

8.SPARK RDD

26. Storm

1.集羣架構

2.編程模型(spout->tuple->bolt)

3.Topology 運行

4.Storm Streaming Grouping

27. YARN

YARN 是一個資源管理、任務調度的框架,主要包含三大模塊:ResourceManager(RM)、 NodeManager(NM)、ApplicationMaster(AM)。其中,ResourceManager 負責所有資 源的監控、分配和管理; ApplicationMaster 負責每一個具體應用程序的調度和協調; NodeManager 負責每一個節點的維護。對於所有的 applications,RM 擁有絕對的控制權和對資 源的分配權。而每個 AM 則會和 RM 協商資源,同時和 NodeManager 通信來執行和監控 task。

1.ResourceManager

2.NodeManager

3. ApplicationMaster

4. YARN 運行流程

28. 機器學習

1 .決策樹

2. 隨機森林算法

3. 邏輯迴歸

4.SVM

5.樸素貝葉斯

6.K 最近鄰算法

7.K 均值算法

8.Adaboost 算法

9.神經網絡

10.馬爾可夫

29. 雲計算

1. SaaS

2. PaaS

3. IaaS

5. Openstack

總結:

發佈了125 篇原創文章 · 獲贊 127 · 訪問量 53萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章