整個秋招一共有面試位元組、美團、百度、騰訊、阿里、微信支付、鬥魚、網易雲、快手
但是拿到的offer就三家百度,阿里,位元組,在這以時間倒敘的方式回顧整個秋招\春招
小編也將整個秋招的面試題及答案都已經整理好啦,戳這裡免費領取,暗號:CSDN,還有更多大廠面試專題資料和視訊哦
1、java的註解是執行時還是編譯時執行?位元組碼裡面會帶有註解的資訊嗎
2、講講HashMap底層一個put呼叫的方法
3、講講紅黑樹
4、講講動態代理(三種都講講)如何實現的RPC框架的動態代理有想過嗎(沒有,應該是Dubbo的SPI)
5、兌換硬幣
6、二元樹前序遍歷
7、執行緒池
1、講講非同步IO(AIO,BIO,NIO)
2、講講多路複用(select\poll\epoll)
3、核心態和使用者態
4、手寫一個執行緒池(顯然不會)
5、複製連結串列
6、虎羊問題
7、講講Java的鎖
8、一致性hash演演算法說一下
1、講講專案的優化點和bug
2、給出一個陣列,找出滿足i<j<k且nums(i)<nums(j)<nums(k)
3、接雨水
4、講講你在學習的過程中覺得有意思的點
1、秒殺有什麼難點
2、講講秒殺限流、降級、熔斷(降級應該是關閉一部分非核心業務)
3、如果給你開新版本會怎麼做(做分散式,忘記說做分散式事務了)
4、如果一臺JVM每隔一小時OOM一次,你會從哪方面排查
5、兩個陣列合併(這裡其實可以用一下交換的策略減少記憶體開銷)
6、劃分服務按什麼劃分(業務,程式碼量)
7、資料不一致怎麼辦
面試資料:戳這裡免費領取,暗號:CSDN,還有更多大廠面試專題資料和視訊哦!
1、講講java的異常體系
2、jvm的結構(PC,堆,虛擬機器器棧,本地方法棧)哪個地方會出現記憶體溢位(除了pc都會)瞭解過執行時常數池嗎
3、講講synchronized同步方法和同步靜態方法有什麼區別,講到物件頭,裡面有有什麼
4、volatile的作用
5、講講集合類,講講紅黑樹
6、限流用的是什麼(guava的包做的伺服器限流)
7、linux複製和移動用什麼指令,伺服器之間的用什麼
8、redis的分散式hash
9、ThreadLocal瞭解嗎(直接扣原始碼)
10、參照型別有多少種(強軟弱虛)
11、equal和hashcode(這是1.6的規範)
12、mysql講講rr和rc的區別(readview和mvcc那一套講講)
13、講講垃圾回收演演算法和gcroot
1、陣列和連結串列有什麼區別
2、200億條記錄,每條記錄有唯一id,如何加快查詢,16G記憶體,可用磁碟
3、演演算法:前中序確定一棵樹
4、聊專案
5、限流和降級是一回事嗎?
6、rpc框架需要考慮哪些
7、瞭解微服務嗎?為什麼要使用微服務
1、聊實習
2、印象深刻的大學的事情
3、遇到的困難
4、聊專案
1、講講java的異常體系
2、講講http報文格式(首行+報文頭+空行+報文體)講講報文頭
3、講講jvm有什麼引數
4、講講redis訊息訂閱釋出模式(不會)redis有什麼資料結構(5個)排行榜有什麼資料結構(sorted set)講講redis的叢集模式(三種模式,主從,哨兵,叢集)
5、講講http1/2的區別
6、tcp和udp的區別
7、講講專案如何做到高可用的無狀態
8、源站探測方案
9、瞭解MTU嗎,UDP包頭過大怎麼辦(會分片,MTU預設1500)
1、講講String、StringBuilder、StringBuffer
2、怎麼做限流的
3、協程和執行緒
4、go語言的GPMS是什麼(稍微講了講)
5、char可以存下中文嗎(應該)中文多少個位元組(他媽的,我回答3個,其實是utf-8是這樣的)unicode和utf-8有什麼關係(Unicode 是「字元集」UTF-8 是「編碼規則」)
6、guava的限流元件底層原始碼
7、如何設計一個go的error(底層就是一個interface)
8、紅黑樹和AVL樹
9、陣列和連結串列如何設計一個hash表(參照hashmap)如何優化(用紅黑樹)
10、優化之後,瓶頸時在哪裡?(tomcat,redis,mysql,mq)
11、講講快排(優化講講)
12、sychronized
13、mysql的兩個儲存引擎
面試資料:戳這裡免費領取,暗號:CSDN,還有更多大廠面試專題資料和視訊哦!
1、聊聊atomic,講講unsafe有什麼方法,CAS使用AtomiReferrence能解決ABA問題嗎?
2、聊聊volatile(可見性順序性)
3、講講synchronized(objectmonitor)為什麼說synchronized是重量級鎖?ReentranLock是重量級鎖嗎
4、聊聊ReentranLock和Synchronied的差別
5、mysql的Innodedb和myisam(表級鎖,事務)
6、聚集索引和非聚集索引有什麼區別
7、mysql如何實現事務回滾(undolog和redolog,把一個update的流程去講一遍)
8、MVCC瞭解嗎(利用的就是undolog+readview去實現,講講readview,然後講講可重複讀和讀已提交的區別)
恐怖的場景題
1、Hash衝突的解決
2、建模場景題,不會
3、紅黑樹
4、講講實習專案和自己做的專案
5、性格
6、看的書籍
1、聊實習
2、看的書籍
3、聊秒殺的分散式事務
1、朋友圈(並查集)
2、lc600 不含連續1的非負整數
3、atm先扣錢還是先吐錢(其實應該是先吐錢,然後對他加鎖,對賬)
4、瞭解作業系統的號誌和互斥鎖嗎(一個有資源數,一個沒有)
5、mysql如果abc聯合索引,那麼b進行查詢,走索引嗎(應該不走)
6、一條棍子,組成三角形的概率多大(分析另外兩段x,y,a-x-y最後得到1/4)
7、有哪些排序是穩定的(歸併,插入,忘了氣泡排序)
1、作業系統程序和執行緒區別,程序通訊
2、JVM結構,OOM
3、有了解過tomcat嗎(沒有)調優過嗎(沒有)
4、分散式session怎麼做的
5、如果上傳一個大檔案15m,在spring設定最大檔案10m,報錯怎麼處理,是在tomcat端就拋異常(先看紀錄檔,看是哪裡出問題,==面試官:直接說需求做不了==)
6、Spring的IOC和AOP
7、連結串列反轉
8、訊號和號誌(訊號好像是底層的東西,號誌是個同步機制,==訊號:(signal)是一種處理非同步事件的方式。訊號是比較複雜的通訊方式,用於通知接受程序有某種事件發生,除了用於程序外,還可以傳送訊號給程序本身==)
1、專案
2、redis資料結構,說說跳錶
3、hashmap底層,一個put的過程(忘了整個講講擴容)
4、mysql主從複製
5、synchronized和reentrantlock的區別,講講AQS
1、專案
2、String StringBuilder StringBuffer 區別
3、delete和drop的區別
4、索引不好的地方(頻繁改動)
5、說說垃圾回收演演算法(複製,標記清除,標記整理)整個垃圾回收的過程(新生代永久代)
6、給出幾個例子判斷索引是否失效
7、sleep和wait的區別(會不會釋放鎖,超時時間,執行緒狀態)
8、synchronized和volatile的區別(講講區別就好了)
9、講講hashmap(整個put的過程,1.7和1.8的區別)
10、mq如何保證訊息不丟(投遞前,投遞中,投遞後)
11、redis擊穿(布隆過濾器和返回空物件)
12、redis和mysql資料不一致(先刪再改)
13、講講java的執行緒池
14、講講jvm垃圾回收演演算法,講講過程(三種演演算法,整個垃圾回收的過程)
15、講講linux常用指令(隱藏?)
16、binlog的用處,它的應用場景。
1、聊專案
2、redis替換演演算法
3、設計一個評論系統
1、講講實習優化程式碼(優化告警)
2、聊聊秒殺,redis和資料庫不一致怎麼處理
3、RabbitMQ的作用(單純做解耦)
4、聊聊Redis的RDB和AOF,適用於什麼場景?
5、講講ConcurrentHashMap
6、你們用的mysql隔離級別(可重複讀)有什麼特性(可重複讀,解決幻讀)如何解決幻讀(MVCC和間隙鎖)間隙鎖如何兩邊範圍
7、講講垃圾回收機制(7個垃圾回收器講講)
8、講講avl樹和紅黑樹
9、b+樹和b樹區別(能夠範圍查詢)b樹也可以範圍查詢,例如中序遍歷去查詢(我覺得是這樣遍歷次數更多)
10、演演算法:逆序對
1、聊了一堆專案背景
2、ArrayBlockingQ和LinkedBlockingQ應用場景 ArrayBQ是怎麼實現的(迴圈佇列)SynchronousQueue應用場景(==不清楚==)
3、http1.0 1.1 2.0,如果http2.0一個連線多個請求中,一個請求阻塞會導致所有請求都阻塞嗎會不會有請求阻塞把整個鏈路都阻塞的情況?
4、TCP怎麼去取合適的擁塞值(慢啟動,先2倍,再自增,最後減半)在使用者端還是在伺服器端做擁塞?那麼擁塞視窗在哪裡控制(伺服器端)
5、AVL樹和紅黑樹最大區別(旋轉次數,更加適用於增刪查改)有測過嗎?(沒有)
6、B樹和B+樹,為什麼查詢B樹效率會慢(因為不平衡,而且無法做到範圍查詢)如果讓它做範圍查詢會怎麼樣(感覺效率會變低)為什麼不用紅黑樹?(多叉,本質原因就是樹的高度會低!)
7、演演算法:一個陣列,由兩個有序序列形成例如 1 3 5 2 4 6
1、講講jvm的記憶體管理
2、聊聊專案,瞭解騰訊專案的底層?
3、作業系統記憶體管理理解嗎?
4、秒殺中的一個商品數量非常多怎麼辦
5、性格優缺點
6、設計一個資料結構,佇列中出佇列最多次數的字元(一個hash,一個佇列,如果並行將其改造成並行的容器,如果分散式改造為分散式的容器)
7、實習乾的活
1、實習經歷
2、mysql的Innodb的有什麼特點(說了事務,整個update的過程,==忘了說行鎖==)
3、mysql的int多少個位元組(媽的,==沒想到啊,4個位元組==)例如int(10)和int(5)有什麼區別
4、聊聊Synchronized(直接聊底層原理)鎖膨脹的過程(無鎖,偏向鎖,輕量級鎖,重量級鎖)
5、1.8有什麼新特性(這裡沒講啥)記憶體結構有什麼變化?(永久代移除)為什麼要把永久代變為元空間
6、瞭解JVM優化嗎?講講優化引數
7、maven的install和package有什麼差別,realease版本和快照版本有什麼不同
8、git有多少個工作空間?(三個)聽說過reset嗎
9、聚集索引和稀疏索引的差別,Innodb為什麼一定要有主鍵?==(因為標識一條資料是唯一的,而且它和MyISAM不一樣,它的資料是存在一起的,只能通過主鍵去取得唯一)
10、如何進行索引的優化(explain)怎麼看(看id,type,key,possible key extra)還有嗎?(沒了)
11、開放場景題,設計一個訂單系統(負載,快取,分庫分表,訊息佇列)
12、給出具體方案,訂單系統(1、直接用db 2、非同步分散式事務扣庫存 3、分散式鎖 4、分段鎖)
13、PrintGCDetail如何看(這東西里面有新生代垃圾回收後有多少記憶體,老年代回收後有多少記憶體)
回顧整個秋招,發現能力上還是有很大的欠缺,有的甚至一面就掛了。
所以小編將所有面試題和答案都整理好啦!學會了趕緊去面試吧
戳這裡免費領取,暗號:CSDN,還有更多大廠面試專題資料和視訊哦!