蘑菇街、螞蟻金服等公司的Java面試題
1、蘑菇街:
Java1.8新特性——Lambda表達式
redis的相關操作
項目中redis表的設計
redis的數據過期策略
常見的數據結構
遍歷Map的幾種方式
MySQL、redis的設計思路
業務邏輯的梳理
main方法用private修飾會怎樣?
ArrayList和LinkedList的區別
多線程死鎖怎麽解決
數據庫裏有海量數據,在不建索引的條件下,用Java代碼實現快速查找出某個字段的最大一百條
2、微醫集團:
Map——自己盡情擴展
用過的線程池和線程
設計模式——單例模式和觀察者模式
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
蘑菇街、螞蟻金服等公司的Java面試題