1、做一下自我介紹吧,簡單說一下你的專案?
2、有遇過記憶體洩漏嗎?你們是怎麼解決的?這個前陣子確實遇過一次,還算運氣比較好。
3、java的基本型別有哪幾個? String是不是java的基本型別? String為什麼要是final類型的?
4、反射機制的底層實作是什麼?動態呢?動態的實作原理?
5、HashMap
了解嗎?說一下HashMap
相關的一些東西? HashMap
是線程安全的嗎?為什麼是線程安全的? ConcureentHashMap
了解嗎?他是如何實現線程安全的?你剛才說1.8是基於CAS
? CAS
的ABA問題怎麼解決?
6、說一下JVM的執行緒模型?這些區域都分別是乾啥用的? Java
執行緒模型和JVM
執行緒模型注意區分、總結下,網路上很多文章都是錯的。
7、說一下java類別載入器的工作機制?類別載入在那個區域進行的?
8、說一下java的執行緒模型? violate了解嗎?他的原理是什麼? violate是線程安全的嗎?為什麼不是?
9、確保執行緒安全的解決方法有哪些?說一說讀寫鎖定吧,讀寫鎖的讀
10、資料庫的索引有哪幾種?為什麼要用B 樹來做索引?組合索引和幾個單一的索引有什麼不同?資料庫的大表查詢優化了解嗎? MVCC
機制了解不? MVCC機制有什麼問題?怎麼去解決這個問題? MySQLmysql
慢語句調優做過嗎?說說你是怎麼做的?
11、Redis
了解嗎?你說說怎麼用Redis
實作分散式鎖定?
12、Spring
中Bean的作用域,Spring MVC
的controller
是執行緒安全的嗎?怎麼去確保線程安全呢?
(面經來自於網友:兩年工作經驗、山魯亞爾)
看完上面的這些題目,你覺得自己能回答上來多少?依照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
實作分散式鎖定?
這個問題,其實看起來簡單,回答起來沒那麼簡單的,
這裡社交很多東西,不是簡單的
setnx
,LUA腳本
就能解決的,牽涉到Redis
叢集模式,牽涉到業務逾時等問題。面試官都是幫你安排好的,這個得有些真材實料,背面試題只能應付比較膚淺的面試官,遇上認真點的面試官,那就得用自己的真材實料去回答了。
12、Spring
中Bean
的作用域,Spring MVC
的controller
是線程安全的嗎?怎麼去確保線程安全呢?
這個問題,這裡就沒有再扯了,因為各大公眾號,我的這個公眾號之前也發過類似的文章,所以有空別小看公眾號的重要性。 只是在於積累,平常在車上、地鐵上、工位上休息的時候,可以藉助於一些瑣碎的時間去看一些技術性的公文章,積累自己的認識。
實話實說,上面90%的問題,我們都可以透過背面試題來解決,可能存在個別題目需要自己真的去體會體驗過才可以搞定。
但是個人始終認為:五年以內的工作經驗,面試基本上可以透過背面試題來解決。
以上是美團一面,看看能否回答上來?的詳細內容。更多資訊請關注PHP中文網其他相關文章!