這幾天有幸接到華為二面的面試通知,整個過程大概有九十分鐘,面試官真的問的東西很全面的,如果不做足準備是肯定不可以的(當時也問到了多概念的問題)。面試之后,將這些面試題目做了一個分類并且整理出了答案(比較強迫癥~需要狂補知識~),面試的有:linux+redis+MySQL+算法+網絡+JAVA等,現在記得的就只有這些了,下面分享一下我這一次面試的面經+面試答案+我的學習筆記(有面試專題+腦圖),絕對很值得~~~
01 操作系統、Linux相關
1.1 華為面試問題
- 1.死鎖產生的原因
- 2.進程、線程區別,什么時候用線程
- 3.如何實現一個線程池,Java中線程池如何進行配置
- 4.linux中有哪些常見的指令,進行介紹
- 5.select、poll、epoll有沒有了解過,講解一下
- 6.線程切換,引申到Java阻塞運行
- 7.頁面置換算法有哪些 介紹一下
1.2學習時的腦圖
1.3Linux面試專題+答案
02 Redis相關
2.1 華為面試問題
- 1.redis了解嗎?你說說怎么用redis實現分布式鎖?
- 2.Redis常用數據結構及底層數據結構實現
- 3.如何解決 Redis 的并發競爭 Key 問題
- 4.如何保證緩存與數據庫雙寫時的數據一致性?
2.2 我的Redis學習筆記
(1)14個高頻Redis知識點+面試答案
- 1.redis 簡介
- 2.為什么要用 redis /為什么要用緩存(高性能、高并發)
- 3.為什么要用 redis 而不用 map/guava 做緩存?
- 4.redis 和 memcached 的區別
- 5.redis 常見數據結構以及使用場景分析(String、Hash、List、Set、Sorted Set)
- 6.redis 設置過期時間
- 7.redis 內存淘汰機制(MySQL里有2000w數據,Redis中只存20w的數據,如何保證Redis中的數據都是熱點數據?)
- 8.redis 持久化機制(怎么保證 redis 掛掉之后再重啟數據可以進行恢復)
- 9.redis 事務
- 10.Redis 常見異常及解決方案(緩存穿透、緩存雪崩、緩存預熱、緩存降級)
- 11.分布式環境下常見的應用場景(分布式鎖、分布式自增 ID)
- 12.Redis 集群模式(主從模式、哨兵模式、Cluster 集群模式)
- 13.如何解決 Redis 的并發競爭 Key 問題
- 14.如何保證緩存與數據庫雙寫時的數據一致性?
(2)Redis學習腦圖
03 MySQL相關
3.1 華為面試問題
- 1.MySQL有哪些鎖?
- 2.解釋一下ACID都是什么
- 3.Innodb中索引的實現
- 4.B+樹
- 5.AUTO_INCREMENT原理(考察并發情況)
- 6.數據庫的索引有哪幾種?為什么要用B+樹來做索引?組合索引和幾個單個的索引有什么區別?
- 7.數據庫的大表查詢優化了解嗎?MVCC機制了解不?MVCC機制有什么問題?怎么去解決這個問題?mysql慢語句調優做過嗎?說說你是怎么做的?
3.2 我的MySQL學習筆記
(1)20個高頻MySQL面試知識點
- 1.事務四大特性(ACID)原子性、一致性、隔離性、持久性?
- 2.事務的并發?事務隔離級別,每個級別會引發什么問題,MySQL默認是哪個級別?
- 3.MySQL常見的三種存儲引擎(InnoDB、MyISAM、MEMORY)的區別?
- 4.MySQL的MyISAM與InnoDB兩種存儲引擎在,事務、鎖級別,各自的適用場景?
- 5.查詢語句不同元素(where、jion、limit、group by、having等等)執行先后順序?
- 6.什么是臨時表,臨時表什么時候刪除?
- 7.MySQL B+Tree索引和Hash索引的區別?
- 8.sql查詢語句確定創建哪種類型的索引?如何優化查詢?
- 9.聚集索引和非聚集索引區別?
- 10.有哪些鎖(樂觀鎖悲觀鎖),select 時怎么加排它鎖?
- 11.非關系型數據庫和關系型數據庫區別,優勢比較?
- 12.數據庫三范式,根據某個場景設計數據表?
- 13.數據庫的讀寫分離、主從復制,主從復制分析的 7 個問題?
- 14.使用explain優化sql和索引?
- 15.MySQL慢查詢怎么解決?
- 16.什么是 內連接、外連接、交叉連接、笛卡爾積等?
- 17.mysql都有什么鎖,死鎖判定原理和具體場景,死鎖怎么解決?
- 18.varchar和char的使用場景?
- 19.mysql 高并發環境解決方案?
- 20.數據庫崩潰時事務的恢復機制(REDO日志和UNDO日志)?
20個高頻MySQL面試知識點:
(2)MySQL學習思維腦圖(xmind)
04 思維/算法
4.1 華為面試問題
- 1.使用O(N)復雜度完成GBDT分裂
- 2.找出無序數組中相隔距離最長的逆序對
- 3.給出一個rand5(),實現一個分布均勻的rand7()生成器
- 4.有一個點,向北走5公里、東走10km、向南走5公里,回到原點。這樣的點有幾個,證明。
- 5.有一個n克的物體、一個天平和若干砝碼,這個天平沒有刻度,試問最少用多少個什么樣的砝碼6.可以將這個物體的質量稱出。砝碼的質量和個數自行指定。
4.2 算法刷題
- 1.編程技巧
- 2.線性表
- 3.字符串
- 4.棧和隊列
- 5.樹
- 6.排序
- 7.查找
- 8.暴力枚舉法
- 9.廣度優先搜索
- 10.深度優先搜索
- 11.分治法
- 12.貪心法
- 13.動態規劃
- 14.圖
- 15.細節實現題
(1)算法刷題:
(2)算法的學習腦圖
05網絡相關
5.1 華為面試問題
- 1.OSI七層模型都是什么
- 2.舉例網絡協議,都在哪個層
- 3.TCP UDP區別
- 4.TCP如何實現可靠連接
- 5.Time_Wait中2*msl 為什么
- 6.如果TCP突然接收方故障 會發生什么
- 7.HTTP狀態碼 含義,503 504,200
- 8.GET POST區別
- 9.一個url從輸入到訪問經過了哪些過程
- 10.說一說TCP三次握手和四次揮手
5.2 JAVA核心知識整理
(JVM,JAVA集合,網絡,JAVA多線程并發,JAVA基礎,Spring原理,微服務,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,設計模式,負載均衡,數據庫,一致性哈希,JAVA算法,數據結構,加密算法,分布式緩存)
5.3網絡學習腦圖
06 Java相關
6.1 華為面試問題
- 1.JVM內存模型
- 2.GC垃圾回收算法
- 3.講解新生代 老年代
- 4.java的基本類型有哪幾個?String是不是java的基本類型?String為什么要是final類型的?
- 5.說一下JVM的線程模型?這些區域都分別是干啥用的?java線程模型和jvm線程模型注意區分
6.2 我的JAVA學習筆記
(1)JAVA面試寶典
(2)多線程與高并發編程學習思維腦圖(xmind)
最后
將Linux、Redis、MySQL、Java、網絡、算法等這些知識啃透,一定會有收獲的,可能會有很多看一遍只會有一點印象,面試官問的時候就只能想起這個知識點來,卻想不起具體的知識,所以就需要將這些知識都啃透,這樣才可以運用底層的原理,舉一反三。望大家都可以面試到心儀大廠。






