天天看點

蘑菇街、螞蟻金服等公司的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

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

繼續閱讀