蘑菇街、螞蟻金服等公司的Java面試題

工作時間參考:17年開始工作,18年6月份畢業,算上實習一年半工作經驗。近一個半月,先後參加了很多公司的面試,有失敗,也有成功。面試題如下:

1、蘑菇街:
Java1.8新特性——Lambda表達式
redis的相關操作
項目中redis表的設計
redis的數據過期策略
常見的數據結構
遍歷Map的幾種方式
MySQL、redis的設計思路
業務邏輯的梳理
main方法用private修飾會怎樣?
ArrayList和LinkedList的區別
多線程死鎖怎麼解決
數據庫裏有海量數據,在不建索引的條件下,用Java代碼實現快速查找出某個字段的最大一百條

2、微醫集團:
Map——自己盡情擴展
用過的線程池和線程
設計模式——單例模式和觀察者模式
數據庫優化以及常用sql語句調優
jvm調優,如何防止OOM
日誌——log4j2
緩存算法如何實現
maven命令解決jar包衝突
常用Linux命令
Spring Cloud——oauth2、Hystrix以及其他組件
Kafka原理
redis相關操作以及原理
用過的消息隊列
介紹zookeeper
BIO、NIO、AIO的使用場景和實現原理
spring boot的加載原理以及加載過程
spring ApplicationContext和BeanFactory

3、螞蟻金服:
Mysql索引
redis分佈式事務鎖
線程池常用參數的配置,以及最大線程數根據什麼來確定
spring AOP怎麼攔截,原理
什麼時候要重寫hashCode和equals方法
樂觀鎖和悲觀鎖
Java內存模型
設計模式
如何釋放線程,分別要注意什麼
ArrayList實現原理,相對於數組的好處
LinkeList的實現原理,爲什麼用雙向鏈表
HashMap的實現原理
concurrentHashMap的實現原理,jdk1.7和jdk1.8實現有什麼區別
用過的鎖——sychronized和Lock,爲什麼說sychronized是重量鎖,效率低在哪
NIO的原理以及使用
循環依賴
螞蟻面試官的建議:1、平時做項目的時候要有自己的想法,而不是單純的按照需求文檔來開發,多想想爲什麼要那麼設計,好在哪,亮點在哪;2、多看源碼,看源碼的設計思路,如果是自己,會怎麼去設計;3、多瞭解數據結構的實現和新技術的實現原理。

4、大搜車:
String、StringBuilder、StringBuffer的實現原理——源碼
Spring的BeanFactory和ApplicationContext的區別
Spring Bean的生命週期
ElasticSearch、Logstash、Kibana
Kafka原理
redis的優點、原理
單例模式的幾種實現方式,每種都有哪些問題
volatile關鍵字
重載、重寫的區別
Object裏面常見的方法
靜態方法加鎖和普通方法加鎖有什麼區別
類的加載過程
jvm模型介紹以及如何調優

5、百世集團、穆天機器人、創泰科技:
手寫代碼:
1、去除一個數組裏面的重複元素;
2、一個數組裏只有0和1,求0到1的最遠距離(eg:[0, 1, 0, 0, 1] -> 返回2)
建模一個人去飯店吃飯的全過程
Collection介紹——自由發散
Map介紹——HashMap和ConcurrentHashMap的區別及源碼分析
線程、數據同步
Mysql調優
jQuery調優
Dubbo和Spring Cloud
redis存儲的數據類型
spring的IOC和AOP
實現線程的幾種方式
spring的事務

6、浙江大華:
線程:start和run方法的區別;
線程池參數
有哪幾種鏈表,每種有什麼實例
spring boot啓動過程
redis持久化方式
緩存算法
什麼時候會發生GC,jvm調優
Kafka+ELK的日誌系統的搭建過程
集羣中選舉策略的原理
ElasticSearch數據的存儲格式
spring的定時任務
redis的過期策略
spring cloud——熔斷器Hystrix

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章