升職 加薪 拿offer 阿里大牛給你的幾個問題 !

阿里的面試挺有挑戰性的感覺哈哈哈哈,不過我覺得挺有意思的,感覺啥都能問到。(二面是10天前約的面試,差點要忘了)然後是HR面,昨天就收到offer

一面二面啥的我都忘記具體的了,就簡單的總結一下

1基礎

int float short double long char 佔字節數?int 範圍?float 範圍?hashcode 和 equals 的關係深拷貝、淺拷貝區別java 異常體系?RuntimeException Exception Error 的區別,舉常見的例子lambda 表達式中使用外部變量,為什麼要 final?

2集合

集合這塊關注一下 1.8 的實現吧,和 1.7 相比變化了很多

Collection 有什麼子接口、有哪些具體的實現簡單介紹下 ArrayList 怎麼實現,加操作、取值操作,什麼時候擴容?講一下 hashMap 原理。hashMap 可以併發讀麼?併發寫會有什麼問題?講一下 concurrentHashMap 原理。頭插法還是尾插法?擴容怎麼做?堆是怎麼存儲的,插入是在哪裡?集合在迭代的過程中,插入或刪除數據會怎樣?

3併發

線程進程和線程的區別?並行和併發的區別?瞭解協程麼?進程間如何通信:進程 A 想讀取進程 B 的主存怎麼辦?線程間通信?線程的生命週期有哪些狀態?怎麼轉換?wait 和 sleep 有什麼區別?什麼情況下會用到 sleep?怎麼停止線程?怎麼控制多個線程按序執行?線程池會用到線程池麼?怎麼使用的?用什麼實現的?常用的線程池有哪些?用的哪個線程池?什麼情況下怎麼選擇?ThreadPoolExecutor 有什麼參數?各有什麼作用?拒絕策略?一個任務從被提交到被執行,線程池做了哪些工作?鎖講一下鎖,有哪些鎖,有什麼區別,怎麼實現的?ReentrantLock 應用場景死鎖條件AQS瞭解 AQS 麼?講講底層實現原理AQS 有哪些實現?講講 AtomicInteger 的底層實現volatile 關鍵字有什麼用?怎麼理解可見性,一般什麼場景去用可見性講一下 threadLocal 原理,threadLocal 是存在 jvm 內存哪一塊的

4IO

IO 這塊我不熟,沒有多講

瞭解 NIO 麼?講講NIO 與 BIO 有什麼區別?瞭解 Netty 原理麼

JVM

1內存與 GC

jvm 內存區域分佈?gc 發生在哪些部分?介紹一下垃圾回收過程。垃圾回收算法的瞭解。現在用的什麼回收算法?現在使用的什麼垃圾回收器?知道哪些?講講 G1容器的內存和 jvm 的內存有什麼關係?參數怎麼配置?

2異常與調優

線上有什麼 jvm 參數調整?oom 問題排查思路線上問題排查,突然長時間未響應,怎麼排查,oomcpu 使用率特別高,怎麼排查?通用方法?定位代碼?cpu高的原因?頻繁 GC 原因?什麼時候觸發 FGC?怎麼獲取 dump 文件?怎麼分析?

3類加載器

怎麼實現自己的類加載器?類加載過程?初始化順序?

Spring

spring 介紹一下講一下 ioc、aopioc 怎麼防止循環依賴aop 的實現原理、動態代理過程tomcat 與 spring、controller 的關係spring boot starter 自加載是怎麼實現的?在生命週期哪個階段?Spring 處理請求的過程?

MySQL

數據倉庫與 mysql 區別?hive 和 mysql 有什麼區別?spark 和 hadoop 區別?mapreduce 互相等待,怎麼解決?acid 含義?事務隔離級別?幻讀怎麼解決的?用過 mysql 的鎖麼?有哪些鎖?MyISAM、InnoDB 區別?為什麼不用 MyISAM?mvcc 原理?多版本數據存放在哪?mysql 髒頁?redo log,undo log?索引innodb 的索引結構是什麼?什麼是聚簇索引?b+ 樹與 b 樹的區別?b+ 樹與二叉樹區別,優點?為什麼不用紅黑樹?多列索引的結構字符串類型和數字類型索引的效率?數據類型隱式轉換主鍵與普通索引的聯繫?存儲上的區別?sqljoin 和 in 怎麼選擇?有什麼區別?union 和 union all 有什麼區別?怎麼選擇?怎麼處理 sql 慢查詢?索引用得不太正常怎麼處理?同時有(a,b)和(a,c)的索引,查詢 a 的時候,會選哪個索引?跨庫分頁的實現?分庫分表有哪些策略?怎麼保證 id 唯一?對 uuid 的理解?知道哪些 GUID、Random 算法?主鍵選隨機 id、uuid 還是自增 id?為什麼?主鍵有序無序對數據庫的影響?主從複製的過程?複製原理?怎麼保證強一致性?

網絡

tcptcp 有哪些機制確保可靠性?擁塞控制怎麼實現?close_wait 太多怎麼處理?為什麼會出現這種情況?講講三次握手,四次揮手httphttp 2 有了解過麼,新增了哪些功能,現在用的什麼版本?1.1?http 緩存機制都有哪些?什麼是 cdn?header 中涉及到緩存的字段有哪些?cookie session 介紹一下html 頁面,怎麼與後端交互?流程是什麼?涉及到哪些組件?http 協議,報文格式?keepalive 有什麼用?Https 原理?知道哪些 http 狀態碼有哪些?http 有哪些請求方法?put、post 實現上有什麼區別?前後端分離與不分離的區別?各有什麼優缺點?常見 web 攻擊有哪些?瞭解 csrf 攻擊麼?restful 的作用?有哪些優點和缺點?nginx 達到上限了怎麼辦?怎麼對 nginx 負載均衡?dns?nginx 負載均衡有哪些算法?各自有什麼優缺點?

Redis

Redis 數據結構、對象,使用場景Redis 內存淘汰策略緩存的熱點 Key 怎麼處理?redis 緩存穿透,怎麼避免?redis keys 命令有什麼缺點主從同步原理,新加從庫的過程RDB 和 AOF 怎麼選擇,什麼場景使用?redis 的 zset 的使用場景?底層實現?為什麼要用跳錶?怎麼實現 redis 分佈式鎖?

Kafka

用 kafka 做了什麼功能?kafka 內部原理?工作流程?Kafka 怎麼保證數據可靠性?怎麼實現 Exactly-Once?

分佈式

有哪些分佈式組件是你最熟悉的,簡單聊一聊。cap 是指什麼?mysql 滿足 cap 中哪些?分佈式鎖有哪些方式可以實現?各有什麼優缺點?什麼是一致性 hash?自己實現一致性 hash,會用什麼數據結構?

微服務

微服務用的什麼體系?講一下熔斷概念?熔斷原理?令牌桶?熔斷三個狀態關係?熔斷會影響性能麼?有遇到過線上發生熔斷麼?不加會怎樣?什麼是 RPC?怎麼實現冪等性?微服務有什麼優缺點?配置中心有哪些選項?apollo 的架構?怎麼無感實現已加載數據更新?

設計模式

工廠方法和抽象工廠的區別裝飾器和代理區別單例對於單例,你知道哪些實現方法?實現一個懶加載單例雙重校驗鎖為什麼需要雙重校驗?

算法題

基本都會問時間複雜度

有哪些常用排序算法?手寫快排,快排時間複雜度是多少?快排算法是不是穩定的?什麼是穩定性?給定一個字母組成的字符串,找出不含有重複字符的最長子串的長度。9 個硬幣中有一個劣幣,用天平秤,最壞幾次?深度優先,廣度優先數字轉中文括號匹配,時間複雜度,空間複雜度單向鏈表的歸併排序鏈表做加法1g 大小文件,裡面每行是最大 16k 的單詞,限制內存 1m,統計單詞頻率最多的 100 個單詞手寫 100 位帶小數的大數字的減法全排列。進階:給數組長度 n,求第 k 行的排列

系統設計

一天爬一千萬條文章,怎麼做設計?怎麼並行協調?100 臺服務器怎麼儘可能負載均衡?怎麼設計一個秒殺系統?怎麼解決大併發?設計一個搶紅包系統,要注意哪些點設計一個微博社交系統,怎麼更高效,索引怎麼設計、提高效率,查詢掃描行數,緩存設計在 java 裡手動實現一個生產者、消費者模型設計一個視頻上傳的流程。表設計?文件上傳服務器的原理?cdn?高qps怎麼處理?上傳和請求?緩存怎麼加?有什麼分佈式 id 生成方法?各自的優缺點是什麼?反羊毛怎麼做?設計一個簡單的智能傢俱系統,比如說加溼器和溫溼度傳感器關聯,怎麼設計?考慮哪些點?設計一個登陸過程。md5 的原理?可逆麼?

你有什麼想問的?

部門定位?崗位職責?目前在做什麼業務?加班情況?薪酬福利介紹?

Offer 選擇

目前手頭的 offer 情況?還有哪些公司的面試流程?這些公司你自己有什麼傾向性呢?最看重什麼因素?你的預期薪酬是多少?目前的薪資情況?想加入一個怎麼樣的團隊?最近一年的績效情況?

補充一下 offer 情況,最後拿到了美團基礎架構、快手主 app、猿輔導斑馬、騰訊 csig 的 offer。面試前的“練手”還是很重要的,前期“裸面”浪費了阿里、螞蟻、字節、Shopee 的面試機會。所有開始面試之前一定要準備好啊,不然也是耽擱面試官和自己的時間。最後還是選擇騰訊,下週一入職大家加油最後放一波福利吧 【點贊關注私信】 [福利]希望可以幫助到大家

多刷題,多刷題,算法是我的硬傷,後面硬啃了好長一段時間才補回來,算法才是程序員的靈魂!!!!

(1)多線程

(2)刷的算法題

(4)面經和真題解析

(5)視頻

ps;當你覺得學不進或者累了的時候,視頻是個不錯的選擇


這些大家在網上都是可以找到的,不過整理起來會有點麻煩,有需要的話可以分享給大家,點贊加關注私信【福利】免費領取 祝大家 升職 加薪 offer拿到手軟哦!