首頁  >  文章  >  Java  >  美團一面,看看能否回答上來?

美團一面,看看能否回答上來?

Java后端技术全栈
Java后端技术全栈轉載
2023-08-24 15:51:191158瀏覽


題目

1、做一下自我介紹吧,簡單說一下你的專案?

2、有遇過記憶體洩漏嗎?你們是怎麼解決的?這個前陣子確實遇過一次,還算運氣比較好。

3、java的基本型別有哪幾個? String是不是java的基本型別? String為什麼要是final類型的?

4、反射機制的底層實作是什麼?動態呢?動態的實作原理?

5、HashMap了解嗎?說一下HashMap相關的一些東西? HashMap是線程安全的嗎?為什麼是線程安全的? ConcureentHashMap了解嗎?他是如何實現線程安全的?你剛才說1.8是基於CASCAS的ABA問題怎麼解決?

6、說一下JVM的執行緒模型?這些區域都分別是乾啥用的? Java執行緒模型和JVM執行緒模型注意區分、總結下,網路上很多文章都是錯的。

7、說一下java類別載入器的工作機制?類別載入在那個區域進行的?

8、說一下java的執行緒模型? violate了解嗎?他的原理是什麼? violate是線程安全的嗎?為什麼不是?

9、確保執行緒安全的解決方法有哪些?說一說讀寫鎖定吧,讀寫鎖的讀

10、資料庫的索引有哪幾種?為什麼要用B 樹來做索引?組合索引和幾個單一的索引有什麼不同?資料庫的大表查詢優化了解嗎? MVCC機制了解不? MVCC機制有什麼問題?怎麼去解決這個問題? MySQLmysql 慢語句調優做過嗎?說說你是怎麼做的?

11、Redis了解嗎?你說說怎麼用Redis實作分散式鎖定?

12、Spring中Bean的作用域,Spring MVCcontroller是執行緒安全的嗎?怎麼去確保線程安全呢?

(面經來自於網友:兩年工作經驗、山魯亞爾)

看完上面的這些題目,你覺得自己能回答上來多少?依照100分制,你給自己多少分?

問題分析

1、做一下自我介紹吧,簡單說一下你的專案?

兩個問題,一是做一個自我介紹,另外就是介紹項目,項目介紹你最熟悉的,或最能拿出手的項目,不一定就是最近在做的項目。

2、有遇過記憶體洩漏嗎?你們是怎麼解決的?這個前陣子確實遇過一次,還算運氣比較好。

這個問題,就是靠平常總結,如果真的沒有遇過,也是可以自己模擬的,然後再用各種指令和工具來排查。在面試時候被問到,就大致說一下排查思路,排查過程中用到的命令和工具就可以了。

3、Java的基本型別有哪幾個? String是不是Java的基本型別? String為什麼要是final類型的?

前面兩個問題都是考察基礎的,第三問就得自己反思了,為什麼要設定成final類型,就得想想final修飾類別的時候,有什麼特性?在這裡起到什麼作用?

4、反射機制的底層實作是什麼?動態呢?動態的實作原理?

這個也算是考察基礎知識是否紮實,重點在動態,以及動態和反射的關係。

5、HashMap了解嗎?說一下HashMap相關的一些東西? HashMap是線程安全的嗎?為什麼是線程安全的? ConcurrentHashMap了解嗎?他是如何實現線程安全的?你剛才說1.8是基於CAS? CAS的ABA問題怎麼解決?

這是幾個問題,

HashMap的問題

  • 你得說HashMap是什麼,
  • 底層採用什麼資料結構實作的,
  • 最好說一下put的過程
  • JDK版本各版本中是怎麼樣的。
  • HashMap為什麼是線程不安全的?

ConcurrentHashMap問題

  • ConcurrentHashMap是什麼?
  • ConcurrentHashMap底層資料結構是什麼?
  • JDK版本不同,ConcurrentHashMap在設計上有些區別

CAS問題

  • CAS是什麼?
  • CAS存在什麼問題
  • ABA問題是什麼
  • #ABA問題如何解決

別想看這個題目,很多人都掛在這個題目上。背背面試題,再加上稍微一點點的理解,這些問題都能應付。

6、說一下JVM的執行緒模型?這些區域都分別是乾啥用的? java執行緒模型和jvm執行緒模型注意區分、總結下,網路上很多文章都是錯的。

考察的是JVM記憶體模型,通常也是考察JVM執行時間資料區,注意,這裡千萬別把Java記憶體模型搞進來,Java記憶體模型叫做JMM。

說到JVM執行時期資料區,就會提到執行緒私有和執行緒共享。

尤其是Java虛擬機器堆疊、堆疊、方法區,這三個一定的說清楚。

堆疊和執行緒的關係是什麼?棧中存放的是什麼?為什麼會SOF?

堆和物件記憶體分配有關係,所以一定會聊到物件的生命週期,那就聊到類別是怎麼被載入到JVM中的? 如何判斷一個物件已經死了? 同時也會聊到垃圾回收演算法有哪些? 垃圾收集器有哪些? 最新的垃圾收集器是什麼? 有什麼特性?

熟悉哪些JVM調優參數?

這個問題,也是很大部分人會掛的,我也在線模擬面試過很多人,聊到JVM這一塊,90%都會掛。

7、說一下Java類別載入器的工作機制?類別載入在那個區域進行的?

上面問題中說過了,這個類別載入相關的一定會問,表示你對一個類別是怎麼從.class檔案到Class物件,再到實的過程,看看你熟悉多少

這些問題也可以從側面反饋到,你對你每一行程式碼是怎麼運行,會存在什麼問題是否有所知曉。

8、說一下Java的執行緒模型? volatile了解嗎?他的原理是什麼? violate是線程安全的嗎?為什麼不是?

Java執行緒模型你得熟悉一下,volatile也得了解一下,有什麼特性,可見性、防重排、原子性。這些也得去了解一下。

這個問題理論性比較強,背背面試題,基本上能搞定。

9、確保執行緒安全的解決方法有哪些?說一說讀寫鎖吧,讀寫鎖的讀

這些都是理論性的,背背面試題就能解決,不是一定要使用過。自己下去好好準備一下就可以了

10、資料庫的索引有哪幾種?為什麼要用B 樹來做索引?組合索引和幾個單一的索引有什麼不同?資料庫的大表查詢優化了解嗎? MVCC機制了解不? MVCC機制有什麼問題?怎麼去解決這個問題? MySQL 慢語句調優做過嗎?說說你是怎麼做的?

這個相當於MySQL資料庫的8連問,8個連續炮你能回答上來幾個?基本上也都是平常多看看面經,背背面試題也能應付。

11、Redis了解嗎?你說說怎麼用Redis實作分散式鎖定?

這個問題,其實看起來簡單,回答起來沒那麼簡單的,

這裡社交很多東西,不是簡單的setnxLUA腳本就能解決的,牽涉到Redis叢集模式,牽涉到業務逾時等問題。面試官都是幫你安排好的,這個得有些真材實料,背面試題只能應付比較膚淺的面試官,遇上認真點的面試官,那就得用自己的真材實料去回答了。

12、SpringBean的作用域,Spring MVCcontroller是線程安全的嗎?怎麼去確保線程安全呢?

這個問題,這裡就沒有扯了,因為各大公眾號,我的這個公眾號之前也發過類似的文章,所以有空別小看公眾號的重要性。 只是在於積累,平常在車上、地鐵上、工位上休息的時候,可以藉助於一些瑣碎的時間去看一些技術性的公文章,積累自己的認識。

總結

實話實說,上面90%的問題,我們都可以透過背面試題來解決,可能存在個別題目需要自己真的去體會體驗過才可以搞定。

但是個人始終認為:五年以內的工作經驗,面試基本上可以透過背面試題來解決

#

以上是美團一面,看看能否回答上來?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:Java后端技术全栈。如有侵權,請聯絡admin@php.cn刪除