java記憶體溢位排查,後臺開發JAVA崗
位元組跳動一面
-
自我介紹,我簡歷裡面有一個商城的專案
-
畫一個商城專案的所有的模組,然後講解。
-
在使用者登入的時候,由於HTTP是無狀態的如何識別不同的使用者(session或者cookie) ,然後讓說一下session和cook各有什麼優缺點
-
單點登入的問題如何解決(伺服器叢集的情況下,使用者如何在一-臺伺服器上登入,訪問其他的伺服器就不需要登入了) ?答:伺服器叢集之間廠播session廠播或者使用Redis共享session
-
Redis的底層是通過什 麼實現的?
-
為什麼Redis他是通過hashtable實現的,但是它的擴容的時候並沒有卡頓?
-
為何Redis是單執行緒的還是這麼快?
-
商城如果有使用者註冊的模組,那麼在使用者註冊成功之後一般會返回一個郵箱連線,然後使用者點選連線跳轉到商城主頁。現在要求連線的有效時間為30分鐘,這種服務如何保證?
-
可以在資料表中增加一個超時時間的欄位,使用者點選連線的時候判斷是否已經超時
-
在進行商品展示的時候,如果一個商品有不同的分配,那麼可能會涉及到有多級分類的問題- -》如何涉及資料庫表,來實現商品的多級分類。
-
把你知道的TCP都說下?
-
說一些TCP的三次握手、四次揮手?以及各自的狀態
-
在四次揮手的情況下,如果伺服器端出現了大量處於close-wait的連線狀態,分析一下原因,如何設定引數解決這樣的問題?
-
在客戶端time-wait的狀態-般會持續多長時間?為什麼要持續這麼長時間?如何有大量的time-wait狀態,出現這種情況的原因是什麼?如何解決?
-
兩個字串的最大子序列問題
位元組跳動二面
- 對於你的商城專案,如果對於同一個分類有多個賣家,如何設計資料表?
- 對於高併發的系統,如何設計架構才能避免瞬間資料庫收到瞬間高流量的衝擊? Redis訊息佇列
- 如果你用Redis實現的話,可能會出現商品超賣的問題,那麼你是如何結果商品超賣問題的?
- 一般在支付的過程中,使用者支付、賬戶被凍結、訂單的生成、賣家庫存減少、賣家收到錢,這是個一系列的過程,那麼你如何設計實現分散式的事務?答:訊息佇列
- 如果使用者在提交訂單之後向訊息佇列傳送訊息,這個時候網路出現異常,訊息佇列並沒有接收到使用者傳送的訊息怎麼辦?答:訊息佇列會有一個回撥介面,對於那些沒有確認或
- 者取消的訊息不斷的輪訓,判斷是否提交成功。
- 對於不同的業務我們會進行分庫儲存,說一下MySQL的主備模式?
- MySQL的主從同步時如何實現的?日誌
- 在MySQL的主從同步過程中,SQL執行緒可不可以並行的執行?答:不可以,因為這樣可能SQL執行的順序不同,導致事務提交時間有差異
- 說一下NIO機制、select系 統呼叫函式?
- B B+樹的特點?
- 字串匹配
- 二叉搜尋樹的第K小節點
- 連結串列每隔K個節點進行翻轉。
卡著我的專案一直問,大家去面試的時候,一定要對簡歷中所用到的知識點有一定的見解,不要被面試官的連環炮嚇到了!
總結
面試難免讓人焦慮不安。經歷過的人都懂的。但是如果你提前預測面試官要問你的問題並想出得體的回答方式,就會容易很多。
此外,都說“面試造火箭,工作擰螺絲”,那對於準備面試的朋友,你只需懂一個字:刷!
給我刷刷刷刷,使勁兒刷刷刷刷刷!今天既是來談面試的,那就必須得來整點面試真題,這不花了我整28天,做了份“Java一線大廠高崗面試題解析合集:JAVA基礎-中級-高階面試+SSM框架+分散式+效能調優+微服務+併發程式設計+網路+設計模式+資料結構與演算法等”
且除了單純的刷題,也得需準備一本【JAVA進階核心知識手冊】:JVM、JAVA集合、JAVA多執行緒併發、JAVA基礎、Spring 原理、微服務、Netty與RPC、網路、日誌、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、設計模式、負載均衡、資料庫、一致性演算法、JAVA演算法、資料結構、加密演算法、分散式快取、Hadoop、Spark、Storm、YARN、機器學習、雲端計算,用來查漏補缺最好不過。