閉關苦修半年,最終靠着這份面試題,我成功拿到了阿里的offer!

前言

我大概我是從去年12月份開始看書學習,到今年的6月份,一直學到看你們的面經基本上百分之90以上都會,我就在5月份開始投簡歷,邊面試邊補充基礎知識等。也是有些辛苦。終因而在前不久拿到了阿里的offer,定級P7。mysql

我如今也來寫面經,把我還能記住的,寫下來,反饋給你們:nginx

一面 :

mysql知道哪些存儲引擎,它們的區別面試

mysql索引在什麼狀況下會失效redis

mysql在項目中的優化場景,慢查詢解決等算法

mysql有什麼索引,索引模型是什麼spring

B-樹與B+樹的區別?爲何不用紅黑樹sql

mysql主從同步怎麼作數據庫

樂觀鎖與悲觀鎖的區別?數組

binlog日誌瀏覽器

redis 持久化有哪幾種方式,怎麼選?

redis 主從同步是怎樣的過程?

redis 的 zset 怎麼實現的?

redis key 的過時策略

hashmap 是怎樣實現的?爲何要用紅黑樹,而不用平衡二叉樹?爲何在1.8中鏈表大於8時會轉紅黑樹?HashMap爲何線程不安全的?

如何實現線程安全的hashmap?

select 和 epoll的區別

http與https的區別,加密怎麼加的?

raft算法詳細講解

Kafka 選主怎麼作的?

kafka如何保證生產與消費都是同步的?

kafka 怎麼保證不丟消息的

redis如何保證高可用

算法:剪繩子(貪心或遞歸解決)

算法:給前序和中序遍歷,重建二叉樹

二面:

自我介紹

講講項目(項目沒啥亮點,直接問基礎)

volatile做用?底層實現?禁止重排序的場景?單例模式中volatile的做用?

如何構造線程池,它的參數,飽和策略?

公平鎖和非公平鎖區別?爲何公平鎖效率低?

線程都有哪些狀態?

線程、進程、協程的區別?

同步隊列器AQS思想,以及基於AQS實現的lock,。

併發工具類CountDownLatch、CyclicBarrier、Semaphore介紹

Execuors類實現的幾種線程池類型,最後如何返回?

手寫單例模式

手寫消費者生產者模式

算法:反轉單鏈表

算法:給定一個只包含 '(' 和 ')' 的字符串,找出最長的包含有效括號的子串的長度。

三面:

這一面,沒問啥東西,主要聊人生,和將來3年的規劃。

下面爲你們附上我在朋友那要到的字節跳動以及京東的面試題

一面:

自我介紹

項目介紹(沒亮點,仍是問基礎)

堆排序的原理及時間複雜度,是否穩定,最壞及最壞場景。

Object類都有哪些方法?

DNS解析的過程/瀏覽器輸入一個url,敲下回車後網絡的全過程

HTTP和HTTPS的區別

UDP怎麼實現可靠傳輸

介紹下https,是如何加密的,加密算法

數據庫索引的優缺點,以及何時數據庫索引失效

事務的隔離級別?

數據庫的髒讀,不可重複讀,幻讀

算法:接雨水:給定 n 個非負整數表示每一個寬度爲 1 的柱子的高度圖,計算按此排列的柱子,下雨以後能接多少雨水。

算法:N皇后

二面:

1. Kafka的特性?

2. Kafka中的分區器、序列化器、攔截器是否瞭解?它們之間的處理順序是什麼?

3. 消費者重平衡(高可用性、伸縮性)

4. 那些情景下會形成消息漏消費?

5. 如何保證消息不被重複消費(冪等性)

6. KafkaConsumer是非線程安全的,那麼怎麼樣實現多線程消費?

7. Kafka生產者客戶端中使用了幾個線程來處理?分別是什麼?

8. 消費者與生產者的工做流程:

9. topic的分區數可不能夠增長?

10. 算法:二叉樹中的最大路徑和

11. 算法:給定單向鏈表的頭指針和一個要刪除的節點的值,定義一個函數刪除該節點。

三面:

redis的Zset怎麼實現的?

sentinel和cluster區別和各自適用場景

redis cluster集羣同步過程

redis單線程爲何快?

mybatis一級緩存和二級緩存

spring如何解決循環依賴?

spring AOP的原理。

spring的生命週期。

Dubbo服務暴露和引用過程,負載均衡策略,容錯機制在哪裏實現的源碼

項目中遇到了哪些問題。(抱歉,個人工做就是增刪改查,沒接觸過相關問題)

算法:二叉樹的鏡像

算法:從上到下打印二叉樹

一面:

如何設計一個秒殺系統?

一天爬一千萬條文章,怎麼作設計?怎麼並行協調?100 臺服務器怎麼儘量負載均衡?

有用太短域名服務嗎,能說一下嗎?

微服務的特色,如何實現服務發現和負載均衡

如何排查線上問題?(背過,沒排過)

貝葉斯的機率學原理

負載均衡的加權輪詢算法怎麼實現

若是用戶量大幅度上漲,如何優化?

paxos算法(這個算法太難,學的時候就沒太理解)

平時都看什麼博客,最近看什麼書了。

二面:

自我介紹

項目介紹(面試官:你說你經驗不足,那我們從基礎來問)

redis的5種類型,及其實現原理(redis設計與實現這本書我滾瓜爛熟,面試官誇我很不錯)

如何使用redis的Zset實現延時隊列?

redis如何實現高可用?

redis緩存穿透、緩存擊穿、緩存雪崩。

布隆過濾器的實現。

如何保證mysql與redis的雙寫一致性。

負載均衡算法有哪些?

服務發現是怎麼實現的?

熔斷是怎麼實現的?

算法:連續子數組的最大和

講講分佈式CAP和BASE?

什麼是強一致性

分佈式事務的解決方案?

TCC(兩階段型、補償型)

id生成器如何實現?

如何判斷一個圖是否有環?

一致性Hash算法,及其應用。

揹包問題

三面:

自我介紹

項目介紹

redis的zSet如何實現?

redis持久化機制。

redis的Hash類型講解,漸進式rehash。

HashMap原理,一個put操做,都有什麼流程?

nginx有本身配置過嗎(這個是我惟一手動操做過的,這個不是背的)

nginx的使用場景。

什麼是分佈式,什麼是集羣,區別是什麼?

在基於dubbo的分佈式環境中,通常將超時timeout設置在provider仍是consumer?

dubbo中負載均衡的策略有哪些?

接口的異步調用?如何設置?運行效果?

談談基於dubbo的系統中consumer集羣的解決方案?

mysql是集羣仍是單節點?最大鏈接數,最大的表中數據量大約是多少?

mysql主從複製主要有哪幾種模式?

mysql索引,B+樹,爲何不用紅黑樹?

數據庫垂直與水平拆分怎麼作。

分佈式session設置

IO、BIO、NIO,阻塞與非阻塞的區別?

分佈式接口的冪等性設計(不能重複扣付款)

算法:二叉搜索數與雙向鏈表(這個懵了)

算法:最長不含重複字符的子字符串

算法:手寫快速排序、插入排序、冒泡排序,並分析時間複雜度和空間複雜度,它們的穩定性。

總結

多看多記,多作題多看書,但願你們能夠找到本身喜歡的工做,一切順利。

相關文章
相關標籤/搜索