面試基礎知識整理

1 JVM
這個大公司基本都會問,內存模型,GC,jvm都有哪些區域?棧楨存了什麼?
經常使用垃圾回收器哪些,特色?jvm性能調優,這些從周志明的jvm特性那本書基本都有答案,一個高級程序員必讀,出去面試,至少得讀兩遍,理解,不是死記硬背,面試官會問的很細,你若是死記硬背,人家隨便一問,你就跪。
2 線程池
這個基本必考,高級程序員不會問你啓動線程哪幾種方式,都是高併發場景。好比四種線程池,都在那哪幾種場景使用的多。線程池的幾個重要參數哪些,這些重要參數,在不一樣線程池下比較。高併發下阻塞隊列用哪一個,我記得是大衆點評問個人,用linkblockqueue仍是arrayblockqueue,我當時候說,後者吧,隊列添加任務快,基於列表,人家說錯了,前者,array是連續的,回收的快,這些都是細節。剩下的就是阻塞隊列拒絕策略。默認都是拒絕,有個面試官問我,假如阻塞隊列滿了,請求拒絕,可是這些請求是重要的,怎麼辦?這種狀況實際開發中會遇到,每一個系統總有個峯值,達到峯值,系統可能處理不了,他說,這個時候先把全部請求落數據庫,或者mq,後面處理,真實場景會遇到,可能以前你沒遇到,可是面試官會問這些,以爲你有沒有思考的能力。線程池,tomcat默認就有線程池,會問到調優,全部系統基本離不開吧。
3 鎖
這個也是必考,雖然開發中有時候不用,基本會問,syncnizched關鍵字,做用,類鎖,對象鎖,方法鎖區別?
靜態方法加鎖,兩線程會互斥嗎,非靜態方法,加鎖,會互斥嗎?這個比較簡單。這個關鍵字,內置對象鎖,jvm建立對象後,會在對象的對象頭,存着。而後和lock鎖區別,這個若是你去背,可能不理解,我是這麼理解的,假若有個廁所,不少人想去上,假如是sync鎖,全部人會不定時去敲門,廁全部人嗎,很是耗性能,CPU切換,可是lock鎖,至關於加了個管理員,舉着個牌子,進去一我的,排着寫着有人,剩下的看到,就不會去敲門了,人走了,把牌子改下,Java,是基於volitale關鍵字,經過aqs保證,還有sync阻塞的,好比有我的在廁所玩手機,sync只能等。釋放鎖,可是lock,能夠中斷,或其餘操做。問的深的會問鎖優化之類的,雖然。開發基本用不到,可是你想拿高薪,必需要會。另外,數據庫的鎖會問。表鎖。lock的讀鎖,寫鎖,怎麼用。原理。這塊必須深刻理解。否則只能被虐。
4 緩存
這個基本必考,redis,問的問題挺多,es可能會問,分佈式系統,redis的惟一ID能作什麼?新數據來了,是先存數據庫仍是redis,過時策略,何時用redis作緩存,何時用作數據庫,和es,mongo,區別。這個只是個緩存,稍微看下,不會問的很深。
5 MQ
 消息中間價,分佈式系統基本使用,原理,哪幾個組成部分,kafka和rabbitmq,區別?
如何保證消息不丟失。基於哪一種協議?他的好處?你的項目怎麼使用它的。點對點,訂閱發佈,區別,你的理解。
6 分佈式
分佈式是啥。一個服務器問題形成血崩怎麼辦,四層負載均衡和七層區別,說下用過哪些RPC框架。dubbo基於哪些協議,服務如何註冊,如何被發現?這個基本都考些,固然,也不要求你都精通,大體原理懂就好。
7 spring
bean的生命週期,spring得核心,spring的代理模式,動態代理,第三方cglib代理哪些場景使用,spring用了哪些設計模式。
spring的事務,傳播行爲。哪些經常使用註解?
8 springmvc
原理,經常使用註解。和struts區別,這個也要花點時間準備。
9 集合
這個必考,重要重要重要,說三遍。哪些經常使用集合,幾種集合,區別,好比ArrayList和linklist區別,性能,這個是基礎,問的最多,最多,最多,hashmap,concurrentHashmap,JDK7和JDK8concurrentHashmap區別,實現,原理,兩種JDK的size() 方法怎麼實現?這個最好把源碼看幾遍,什麼初始化,擴容,底層爲何要用數組加鏈表加紅黑樹,什麼是紅黑樹,這個大部分公司必考,看你能力。
10 數據庫
索引,必考,基於b+樹,惟一索引,普通索引,聯合索引,join是否讓索引失效,聯合索引的最左原則,兩個字段加了聯合索引,兩個一塊兒用,或者第一個字段,查詢,都不會實現,用右邊的字段,失效,等等。有的會讓你手寫SQL,數據庫引擎,myisam和innoDB區別,基本不會問別的。
11 同步io阻塞io
nio bio aio 區別,用法,b阿里和愛奇藝都問了。
12 springmvc和struts2

13 hibernate 和 mybatis程序員

 

rpc相關框架了解  zookeeper選舉面試

相關文章
相關標籤/搜索