前言
一直有小伙伴要我分享面經,說自己想面互聯網公司,無奈經驗太少想多看看其他人是怎么面的,我這兩天剛好和一個剛拿到猿輔導offer的朋友吃了個飯,他向我說了說自己的面試經歷,粉絲朋友是末流211畢業的,作業了兩年了!然后五月份左右的時候辭職的,辭職之后問我要了面試資料進行學習,對自己的知識點進行梳理,查漏補缺!在上個月先是去面了螞蟻金服,不得不說的是螞蟻金服上市之后門檻是真的高!他面到了第三面被拒了,被拒之后找我一起吃了個飯,我給他重新規劃了一下,直到前兩天他又找到了我,說自己已經拿到了猿輔導的offer,下面我把他的面試題以及他的一些經驗總結都分享給大家!
螞蟻金服一面
首先是他螞蟻金服的面試題,是第一面到第三面的!
1、當前讀與快照讀的區別?
2、類加載程序?
3、聚簇和非聚簇索引,
4、HashMap&ConcurrentHashMap,
5、再談談一致hash演算法
6、樂觀鎖&悲觀鎖?
7、雙親委派機制及使用原因?
8、執行緒池的核心引數和基本原理,
9、執行緒池的調優策略,
10、可重入鎖&Synchronize?
11、用自己的實踐經歷說一下索引的使用場景
12、說說GC演算法
13、Http&Https的區別,
(1)https協議需要到CA申請證書,一般免費證書較少,因而需要一定費用,
(2)http是超文本傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl/tls加密傳輸協議,
(3)http和https使用的是完全不同的連接方式,用的埠也不一樣,前者是80,后者是443,
(4)http的連接很簡單,是無狀態的;HTTPS協議是由SSL/TLS+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全,
一面面的并不難,都是一些基礎知識,問題不大
螞蟻金服二面
1、說說自己參與的專案,技術難度在哪里?
2、Collections.sort底層排序方式?
3、排序穩定性?
4、具體場景的排序策略?
5、Http請求程序,DNS決議程序,
6、三次握手四次揮手,
7、簡述執行緒池和并發工具的使用?
8、資料庫索引原理,
9、頻繁老年代回收怎么分析解決?
10、Spring IOC、AOP?
11、講講SpringBoot/SpringCloud的一些應用?
12、阻塞佇列不用java提供的自己怎么實作,condition和wait不能用
13、擁塞視窗講一講,為什么要用慢啟動演算法
14、負載均衡的原理?
15、Redis的資料一致性問題
16、講講docker容器?
17、如何實作何高并發下的削峰,限流?
18、你有什么職業規劃?
二面其實重點就是在于自己參與的專案這一塊,現在互聯網公司招人想要的是你能有自己參與專案的經驗和自己處理專案問題的能力,如果你在第一問專案這里卡了殼,其實后面的也就基本不會問到了!
螞蟻金服三面
1、專案中用的中間件的理解(Dubbo、MQ、Redis、kafka、zk)
2、服務器雪崩是怎么造成的?之前有這樣的經歷嗎?怎么防備?
3、高并發架構的設計思路,
4、以前專案中遇到的最大問題和解決策略,
5、生活中遇到的最大的挫折,
6、生活中遇到的最大的令你最有成就感的事情,
7、你有什么職業規劃?
三面問的最多的也是專案這一塊,可見有自己專案經驗能在面試中有多大的優勢,粉絲朋友在我的梳理中這一塊問題并不大!然后三面其實就是和HR面問的差不多了,然后問的是去留問題,粉絲可能在面試中表露了自己不想待在上海的念頭,然后并沒有接到意向書!
##專案經驗
上面說到了面試互聯網公司的重點,專案這一塊,我相信很多讀者并沒有這一方面的經驗,其實他在這一塊方面的經驗也不多,是拿著我那份突擊面試寶典上推薦的15個新手都能看懂的java教程方向的開源專案看了很久在把這一塊知識補充上去的,具體如下:


我這份突擊面試寶典,不僅包含了開源專案的學習,還涵蓋:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、
Linux 這些所有技術堆疊的知識點!有需要的朋友可以關注我的公眾號:前程有光免費獲取
猿輔導一面
下面接著說他在猿輔導的面試經驗,他是上個月去面的,下面是一面面試題
1. JVM的記憶體模型,那幾個區容易發生OOM
2. JVM的垃圾回收演算法,優點缺點比較
3. JVM中的垃圾回收器(重點介紹CMS,G1)
4. JVM中發生FullGC的情況,old區參考young區物件怎么辦?(卡表記錄)
5. Java執行緒池(7大引數)
6. 當有任務提交時,執行緒池的運行原理
7. 執行緒池中的是怎么根據keepalive時間來回收執行緒的
8. 怎么來保證執行緒之間的安全運行
9. Java中實作鎖的方式(顯示鎖和Synchronized的區別)
10. Synchronized底層的原理(鎖池和等待池)
11. JUC中的ReentrantLock底層(AQS)
12. TCP的可靠連接怎么保證
13. TCP和UDP的區別
14. 資料庫的底層的B+數結構,為什么要使用B+,而不是AVL
15. Mysql的4個隔離級別,對應解決了哪些問題
16. 隔離級別中RR問題是怎么解決的
17. 資料庫中的MVCC實作機制
18. 資料庫中怎么解決幻讀問題的—間隙鎖
19. HashMap的擴容機制,加入都1億個資料,是一次性rehash完么?
20. 漸進式的rehash,實作原理
21. 演算法題—DP找矩陣中的最小路徑
其實猿輔導的一面并不比螞蟻問的簡單,有的知識點甚至比螞蟻問的還要深,他在我的突擊面試寶典的沖擊下對這些問題并沒有什么難度,一面簡單通過
猿輔導二面
1. 雙親委派機制,有哪些好處,怎么打破,JAVA中哪些東西打破了雙親委派機制,
2. Java可以自己重新寫lang包下的類么?
3. 執行緒池中的執行緒的狀態,狀態之間的轉換關系
4. Yield()方法有什么用
5. 為什么要廢棄suspend和stop方法
6. 怎么去停止一個正在運行中的執行緒
7. 執行緒池中為什么要使用workqueue?
8. Java中的直接記憶體
9. Java中的NIO和BIO
10. NIO底層實作(分析三種實作方式)
11. CopyOnwriteArraylist和ConcurrentLinkedList底層實作
12. AQS底層
13. Redis中的持久化機制
14. Redis的集群說一說
15. 一致性Hash的好處與缺點(偏環)
16. 演算法題:判斷一個字串是否是累加和字串:
eg:”11235813”是一個累加和字串
eg:”10099199” 100 + 99 = 199 也是一個累加和字串
其實總的來說二面難度并不大,只要你把我的預計面試寶典吃透了,并沒有什么太大的問題!主要是最后的那道演算法題,一定要認真,不然就容易出錯!
猿輔導三面
1.聊比賽,聊專案
2. Java中的NIO和BIO區別
3. Java中的直接記憶體
4. 直接記憶體產生OOM怎么辦?
5. 專案中有遇到這種情況么?怎么解決的
6. Redis中RDB持久化的具體程序
7. 作業系統的行程通信方法
8. JVM中各個區具體存放哪些資料
9. 專案中遇到了哪些問題
10. 演算法題: 多個有序鏈表合并成一個有序的鏈表
果然,該來的總會來的,問專案!問了一些專案經驗和自己以往參加過什么比賽的經歷,主要聊的最多的還是一些處理專案問題經歷和經驗,他在這方面完美過關!再補充一下對專案沒什么經驗的同學可以往上面翻一下,有我給大家推薦的15個新手也能上手的專案!
猿輔導四面
四面其實就是HR面,就是聊了一些你的職業規劃和你現在都有哪些offer以及你以后想在哪里居住這些問題,只要你靈活一點的回答都不會有什么問題的!
總結
以上就是粉絲朋友的面經分享了,希望對你們能有幫助!然后向大家分享一下我在文中多次提到的突擊面試寶典,這份寶典不僅涵蓋了專案推薦還涵蓋:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 這些所有技術堆疊的知識點!
具體內容如下:

這份突擊面試寶典將近500頁,幾乎涵蓋了面試能問到的所有知識點,大家拿到后可以跟我那個粉絲朋友一樣把自己的知識點重新梳理一次,查漏補缺!相信你把這份寶典吃透了再去面試,你絕對不會面的比他差!
最后強調:這份突擊面試寶典只要你關注我的公眾號:前程有光就可以免費獲取
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/135255.html
標籤:其他
