前言
今年的面試要求有點(diǎn)高蒋困,搞了整整兩個月才拿到offer盾似。我堅信,機(jī)會永遠(yuǎn)屬于有準(zhǔn)備的人雪标,我們與其羨慕他人的成功零院,不如從此刻起,積累足夠多的知識和面試經(jīng)驗村刨,為將來進(jìn)入更好的公司做好充分的準(zhǔn)備告抄!
由于內(nèi)容過多答案我就不寫了,需要答案的小伙伴可以免費(fèi)領(lǐng)取嵌牺,包含spring打洼、并發(fā)、數(shù)據(jù)庫逆粹、Redis募疮、分布式、dubbo枯饿、JVM酝锅、微服務(wù)等方面總結(jié)诡必,下圖是部分截圖奢方,需要的話點(diǎn)這里點(diǎn)這里哮内,暗號簡書徘钥。
1.Java集合22題
這個算是java中的基礎(chǔ)題吧雏掠,但是不要小看這些題瀑焦,有一些可能都回答不上來暴区。我發(fā)現(xiàn)最近關(guān)于底層問題問的越來越多了痘括,這也算一個基本線吧吠裆,如果回答不上來就涼涼了养篓。
- ArrayList 和 Vector 的區(qū)別涂炎。
- 說說 ArrayList,Vector, LinkedList 的存儲性能和特性忠聚。
- 快速失敗 (fail-fast) 和安全失敗 (fail-safe) 的區(qū)別是什么设哗?
- hashmap 的數(shù)據(jù)結(jié)構(gòu)。
- HashMap 的工作原理是什么?
- Hashmap 什么時候進(jìn)行擴(kuò)容呢两蟀?
- List网梢、Map、Set 三個接口赂毯,存取元素時战虏,各有什么特點(diǎn)?
- Set 里的元素是不能重復(fù)的党涕,那么用什么方法來區(qū)分重復(fù)與否呢? 是用 = = 還是 equals()? 它們有何區(qū)別?
- 兩個對象值相同 (x.equals(y) = = true)烦感,但卻可有不同的 hash code,這句話對不對?
- heap 和 stack 有什么區(qū)別膛堤。
- Java 集合類框架的基本接口有哪些手趣?
- HashSet 和 TreeSet 有什么區(qū)別?
- HashSet 的底層實(shí)現(xiàn)是什么?
- LinkedHashMap 的實(shí)現(xiàn)原理?
- 為什么集合類沒有實(shí)現(xiàn) Cloneable 和 Serializable 接口肥荔?
- 什么是迭代器 (Iterator)回懦?
- Iterator 和 ListIterator 的區(qū)別是什么?
- 數(shù)組 (Array) 和列表 (ArrayList) 有什么區(qū)別次企?什么時候應(yīng)該使用 Array 而不是 ArrayList怯晕?
- Java 集合類框架的最佳實(shí)踐有哪些?
- Set 里的元素是不能重復(fù)的缸棵,那么用什么方法來區(qū)分重復(fù)與否呢舟茶?是用 == 還是 equals()?它們有何區(qū)別堵第?
- Comparable 和 Comparator 接口是干什么的吧凉?列出它們的區(qū)別
- Collection 和 Collections 的區(qū)別。
2.JVM與調(diào)優(yōu)21題
JVM算是去大廠必會的一個知識點(diǎn)了踏志,性能調(diào)優(yōu)問題阀捅、垃圾回收機(jī)制、雙親委派以及體系結(jié)構(gòu)针余,這些會的越多加分就越多饲鄙。如果想要資料答案的話請私信我或者點(diǎn)擊這里獲取。
- Java 類加載過程圆雁?
- 描述一下 JVM 加載 Class 文件的原理機(jī)制?
- Java 內(nèi)存分配忍级。
- GC 是什么? 為什么要有 GC?
- 簡述 Java 垃圾回收機(jī)制
- 如何判斷一個對象是否存活伪朽?(或者 GC 對象的判定方法)
- 垃圾回收的優(yōu)點(diǎn)和原理轴咱。并考慮 2 種回收機(jī)制
- 垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動通知虛擬機(jī)進(jìn)行垃圾回收朴肺?
- Java 中會存在內(nèi)存泄漏嗎窖剑,請簡單描述
- 深拷貝和淺拷貝。
- System.gc() 和 Runtime.gc() 會做什么事情戈稿?
- finalize() 方法什么時候被調(diào)用苛吱?析構(gòu)函數(shù) (finalization) 的目的是什么?
- 如果對象的引用被置為 null器瘪,垃圾收集器是否會立即釋放對象占用的內(nèi)存翠储?
- 串行(serial)收集器和吞吐量(throughput)收集器的區(qū)別是什么?
- 在 Java 中橡疼,對象什么時候可以被垃圾回收援所?
- 簡述 Java 內(nèi)存分配與回收策略以及 Minor GC 和 Major GC。
- JVM 的永久代中會發(fā)生垃圾回收么欣除?
- Java 中垃圾收集的方法有哪些住拭?
- 什么是類加載器,類加載器有哪些历帚?
- 類加載器雙親委派模型機(jī)制滔岳?
3.并發(fā)編程28題
并發(fā)是重點(diǎn)的重點(diǎn),記得有一次面試關(guān)于并發(fā)問題面試官死磕了我半個小時挽牢,從鎖機(jī)制到線程池被安排的明明白白的谱煤。
- Synchronized 用過嗎,其原理是什么禽拔?
- 你剛才提到獲取對象的鎖刘离,這個“鎖”到底是什么?如何確定對象的鎖睹栖?
- 什么是可重入性硫惕,為什么說 Synchronized 是可重入鎖?
- JVM 對 Java 的原生鎖做了哪些優(yōu)化野来?
- 為什么說 Synchronized 是非公平鎖恼除?
- 什么是鎖消除和鎖粗化?
- 為什么說 Synchronized 是一個悲觀鎖曼氛?樂觀鎖的實(shí)現(xiàn)原理又是什么豁辉?什么是 CAS,它有什么特性搪锣?
- 樂觀鎖一定就是好的嗎秋忙?
- 跟 Synchronized 相比,可重入鎖 ReentrantLock 其實(shí)現(xiàn)原理有什么不同构舟?
- 那么請談?wù)?AQS 框架是怎么回事兒?
- 請盡可能詳盡地對比下 Synchronized 和 ReentrantLock 的異同。
- ReentrantLock 是如何實(shí)現(xiàn)可重入性的狗超?
- 除了 ReetrantLock弹澎,你還接觸過 JUC 中的哪些并發(fā)工具?
- 請談?wù)?ReadWriteLock 和 StampedLock努咐。
- 如何讓 Java 的線程彼此同步苦蒿?你了解過哪些同步器?請分別介紹下渗稍。
- CyclicBarrier 和 CountDownLatch 看起來很相似佩迟,請對比下呢?
- Java 線程池相關(guān)問題
- Java 中的線程池是如何實(shí)現(xiàn)的竿屹?
- 創(chuàng)建線程池的幾個核心構(gòu)造參數(shù)报强?
- 線程池中的線程是怎么創(chuàng)建的?是一開始就隨著線程池的啟動創(chuàng)建好的嗎拱燃?
- 既然提到可以通過配置不同參數(shù)創(chuàng)建出不同的線程池秉溉,那么 Java 中默認(rèn)實(shí)現(xiàn)好的線程池又有哪些呢?請比較它們的異同
- 如何在 Java 線程池中提交線程碗誉?
- 什么是 Java 的內(nèi)存模型召嘶,Java 中各個線程是怎么彼此看到對方的變量的?
- 請談?wù)?volatile 有什么特點(diǎn)哮缺,為什么它能保證變量對所有線程的可見性弄跌?
- 既然 volatile 能夠保證線程間的變量可見性,是不是就意味著基于 volatile 變量的運(yùn)算就是并發(fā)安全的尝苇?
- 請對比下 volatile 對比 Synchronized 的異同碟绑。
- 請談?wù)?ThreadLocal 是怎么解決并發(fā)安全的?
- 很多人都說要慎用 ThreadLocal茎匠,談?wù)勀愕睦斫飧裰伲褂?ThreadLocal 需要注意些什么?
4.Spring 25題
我相信大家都用過Spring吧诵冒,身為開源框架他的重要性毋庸置疑凯肋,IOC、AOP兩大必問核心汽馋,從注解到標(biāo)簽都有可能問到侮东。
1、什么是 Spring 框架豹芯?Spring 框架有哪些主要模塊悄雅?
2、使用 Spring 框架能帶來哪些好處铁蹈?
3宽闲、什么是控制反轉(zhuǎn)(IOC)?什么是依賴注入?
4容诬、請解釋下 Spring 框架中的 IoC娩梨?
5、BeanFactory 和 ApplicationContext 有什么區(qū)別览徒?
6狈定、Spring 有幾種配置方式?
7习蓬、如何用基于 XML 配置的方式配置 Spring纽什?
8、如何用基于 Java 配置的方式配置 Spring躲叼?
9芦缰、怎樣用注解的方式配置 Spring?
10押赊、請解釋 Spring Bean 的生命周期饺藤?
11、Spring Bean 的作用域之間有什么區(qū)別流礁?
12涕俗、什么是 Spring inner beans?
13神帅、Spring 框架中的單例 Beans 是線程安全的么再姑?
14、請舉例說明如何在 Spring 中注入一個 Java Collection找御?
15元镀、如何向 Spring Bean 中注入一個 Java.util.Properties?
16霎桅、請解釋 Spring Bean 的自動裝配栖疑?
17、請解釋自動裝配模式的區(qū)別滔驶?
18遇革、如何開啟基于注解的自動裝配?
19揭糕、請舉例解釋@Required 注解萝快?
20、請舉例解釋@Autowired 注解著角?
21揪漩、請舉例說明@Qualifier 注解?
22吏口、構(gòu)造方法注入和設(shè)值注入有什么區(qū)別奄容?
23冰更、Spring 框架中有哪些不同類型的事件?
24嫩海、FileSystemResource 和 ClassPathResource 有何區(qū)別冬殃?
25囚痴、Spring 框架中都用到了哪些設(shè)計模式叁怪?
5.設(shè)計模式 10題
記得最清楚的是單例模式的懶漢和餓漢模式,這個考察的方向是一般是固定的深滚,當(dāng)然不排除面試官考察通知工作中遇到的問題(同學(xué)就是這樣奕谭,自己工作不會的就狂問應(yīng)聘的,心疼面試人員)痴荐。
1.請列舉出在 JDK 中幾個常用的設(shè)計模式血柳?
2.什么是設(shè)計模式?你是否在你的代碼里面使用過任何設(shè)計模式生兆?
3.Java 中什么叫單例設(shè)計模式难捌?請用 Java 寫出線程安全的單例模式
4.在 Java 中,什么叫觀察者設(shè)計模式(observer design pattern)鸦难?
5.使用工廠模式最主要的好處是什么根吁?在哪里使用?
6.舉一個用 Java 實(shí)現(xiàn)的裝飾模式(decorator design pattern)合蔽?它是作用于對象層次還是類
層次击敌?
7.在 Java 中,為什么不允許從靜態(tài)方法中訪問非靜態(tài)變量拴事?
8.設(shè)計一個 ATM 機(jī)沃斤,請說出你的設(shè)計思路?
9.在 Java 中刃宵,什么時候用重載衡瓶,什么時候用重寫?
10.舉例說明什么情況下會更傾向于使用抽象類而不是接口
6.springboot 22題
最近springboot和springcloud的占比越來越重牲证,因為他們最受中小企業(yè)歡迎哮针,學(xué)會了它們最低也餓不死了哈哈。
- 什么是 Spring Boot从隆?
- Spring Boot 有哪些優(yōu)點(diǎn)诚撵?
- 什么是 JavaConfig?
- 如何重新加載 Spring Boot 上的更改键闺,而無需重新啟動服務(wù)器寿烟?
- Spring Boot 中的監(jiān)視器是什么?
- 如何在 Spring Boot 中禁用 Actuator 端點(diǎn)安全性辛燥?
- 如何在自定義端口上運(yùn)行 Spring Boot 應(yīng)用程序筛武?
- 什么是 YAML缝其?
- 如何實(shí)現(xiàn) Spring Boot 應(yīng)用程序的安全性?
- 如何集成 Spring Boot 和 ActiveMQ徘六?
- 如何使用 Spring Boot 實(shí)現(xiàn)分頁和排序内边?
- 什么是 Swagger?你用 Spring Boot 實(shí)現(xiàn)了它嗎待锈?
- 什么是 Spring Profiles漠其?
- 什么是 Spring Batch?
- 什么是 FreeMarker 模板竿音?
- 如何使用 Spring Boot 實(shí)現(xiàn)異常處理和屎?
- 您使用了哪些 starter maven 依賴項?
- 什么是 CSRF 攻擊春瞬?
- 什么是 WebSockets柴信?
- 什么是 AOP?
- 什么是 Apache Kafka宽气?
- 我們?nèi)绾伪O(jiān)視所有 Spring Boot 微服務(wù)随常?
7.Redis 16題
Redis的數(shù)據(jù)特點(diǎn)以及回收策略是很重要的一部分,它的優(yōu)勢以及使用場景都需要了解一下
- 什么是redis?
- Reids的特點(diǎn)
- Redis支持的數(shù)據(jù)類型
- Redis是單進(jìn)程單線程的
- 虛擬內(nèi)存
- Redis鎖
- 讀寫分離模型
- 數(shù)據(jù)分片模型
- Redis的回收策略
- 使用Redis有哪些好處萄涯?
- redis相比memcached有哪些優(yōu)勢绪氛?
- redis常見性能問題和解決方案
- MySQL里有2000w數(shù)據(jù),redis中只存20w的數(shù)據(jù)窃判,如何保證redis中的數(shù)據(jù)都是熱點(diǎn)數(shù)據(jù)
- Memcache與Redis的區(qū)別都有哪些钞楼?
- Redis 常見的性能問題都有哪些?如何解決袄琳?
- Redis 最適合的場景
最后
針對最近很多人都在面試询件,我這邊也整理了相當(dāng)多的面試專題資料,也有其他大廠的面經(jīng)唆樊。希望可以幫助到大家宛琅。
下面的面試題答案都整理成文檔筆記。也還整理了一些面試資料&最新2020收集的一些大廠的面試真題(都整理成文檔逗旁,小部分截圖)嘿辟,有需要的可以點(diǎn)擊進(jìn)入暗號簡書