1. 程式人生 > >Java開發兩年經驗面試題彙總

Java開發兩年經驗面試題彙總

一、基礎

a.ArrayList和LinkedList區別,底層實現等等
b.jvm記憶體模組有哪些,修改jvm引數,gc演算法
c.執行緒池是否用過,有哪些重要的引數,分別是什麼意思;為什麼選擇用執行緒池,而不直接去建立執行緒
d.一個物件,什麼情況下會被回收
e.map的底層實現
f.java8有哪些新特性
g.多執行緒有哪些建立方式
h.執行緒同步的方式有哪些
i.資料庫事物的隔離級別有哪些
j.mysql和mongodb的區別
k.sql優化
l.yield和join的區別
m.concurrent包熟悉麼(即對併發程式設計使用併發包)
n.volatile是做什麼呢?
o.為什麼會存在工作記憶體這個東西,沒了他會發生什麼
p.concurrenthashmap和copyonwritearraylist的原理和使用
q.演算法:遞迴,歸併,BTree,冒泡,快排,手寫程式碼實現棧功能等等
r.Callable和Runnable的區別

二、框架

a.SpringMVC處理請求的流程
b.Spring的IOC,AOP是什麼?IOC的原理,涉及到哪些核心的類,比如BeanFactory和FactoryBean等等,實現的方式;AOP一般用來解決什麼問題,他的缺點是啥,一般是通過什麼方式實現,涉及到哪些類?
c.Hibernate和Mybatis的區別
d.springboot和spring的區別;springboot和springMVC的區別
e.restful api的風格
f.微服務是什麼?為什麼要使用微服務
g.springcloud的元件有哪些?註冊中心叢集內有三個註冊中心,需要維持1萬個服務,5萬個例項的心跳,假設註冊中心因叢集維持心跳數目過大而雪崩,如何解決這種場景;feign的網路協議等等
h.如何解決微服務系統的事物問題
i.rabbitmq中佇列如何得知消費者已經成功消費了訊息.即具體的互動邏輯
j.什麼場景下使用redis做快取,redis可以儲存哪些資料結構,搭建redis叢集等等
k.zuul和nginx是一個東西嗎?針對你的描述
l.springboot的核心是starter模組,需要自己手動寫自定義註解,以及starter模組
m.hystrix進行服務降級的原理和機制
n.函數語言程式設計的使用,Spring5,java8
o.cas理論和base理論,分庫分表,分散式系統資料一致性的
p.最終一致性的解決方案,優缺點

三、專案經驗

四、遇到過哪些問題,解決方式;寫過哪些bug等等