對今年的大環境而言,跳槽成功的難度比往年高了很多,很明顯的感受就是:對于今年的java開發朋友跳槽面試,無論一面還是二面,都開始考驗一個Java程式員的技術功底和基礎,對原始碼解讀和核心原理理解也是成了加分項,特別是對 Java 的一些核心基礎知識點掌握的不夠或者沒有體系方向的朋友面試也成了一個苦惱的事情,
今天在這分享大廠Java面試常問的問題包括JVM、常用的演算法和資料結構,redis快取,分布式,Spring,微服務等,正所謂知己知彼,只有體系知識鞏固,面對不斷更新的技術才能快速掌握,同時在面試、作業中也更能脫穎而出!
Java集合
- ArrayList 和 Vector 的區別,
- 說說 ArrayList,Vector, LinkedList 的存盤性能和特性,
- 快速失敗 (fail-fast) 和安全失敗 (fail-safe) 的區別是什么?
- hashmap 的資料結構,
- HashMap 的作業原理是什么?
- Hashmap 什么時候進行擴容呢?
- List、Map、Set 三個介面,存取元素時,各有什么特點?
- Set 里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用 == 還是 equals()? 它們有何區別?
- 兩個物件值相同 (x.equals(y) == true),但卻可有不同的 hash code,這句話對不對?
- heap 和 stack 有什么區別,
- Java 集合類框架的基本介面有哪些?
- HashSet 和 TreeSet 有什么區別?
- HashSet 的底層實作是什么?
- LinkedHashMap 的實作原理?
- 為什么集合類沒有實作 Cloneable 和 Serializable 介面?
- 什么是迭代器 (Iterator)?
- Iterator 和 ListIterator 的區別是什么?
- 陣列 (Array) 和串列 (ArrayList) 有什么區別?什么時候應該使用 Array 而不是 ArrayList?
- Java 集合類框架的最佳實踐有哪些?
- Set 里的元素是不能重復的,那么用什么方法來區分重復與否呢?是用 == 還是 equals()?它們有何區別?
- Comparable 和 Comparator 介面是干什么的?列出它們的區別
- Collection 和 Collections 的區別,

JVM與調優
- Java 類加載程序?
- 描述一下 JVM 加載 Class 檔案的原理機制?
- Java 記憶體分配,
- GC 是什么? 為什么要有 GC?
- 簡述 Java 垃圾回識訓制
- 如何判斷一個物件是否存活?(或者 GC 物件的判定方法)
- 垃圾回收的優點和原理,并考慮 2 種回識訓制
- 垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收記憶體嗎?有什么辦法主動通知虛擬機進行垃圾回收?
- Java 中會存在記憶體泄漏嗎,請簡單描述
- 深拷貝和淺拷貝,
- System.gc() 和 Runtime.gc() 會做什么事情?
- finalize() 方法什么時候被呼叫?解構式 (finalization) 的目的是什么?
- 如果物件的參考被置為 null,垃圾收集器是否會立即釋放物件占用的記憶體?
- 什么是分布式垃圾回收(DGC)?它是如何作業的?
- 串行(serial)收集器和吞吐量(throughput)收集器的區別是什么?
- 在 Java 中,物件什么時候可以被垃圾回收?
- 簡述 Java 記憶體分配與回收策率以及 Minor GC 和 Major GC,
- JVM 的永久代中會發生垃圾回收么?
- Java 中垃圾收集的方法有哪些?
- 什么是類加載器,類加載器有哪些?
- 類加載器雙親委派模型機制?

并發編程
- Synchronized 用過嗎,其原理是什么?
- 你剛才提到獲取物件的鎖,這個“鎖”到底是什么?如何確定物件的鎖?
- 什么是可重入性,為什么說 Synchronized 是可重入鎖?
- JVM 對 Java 的原生鎖做了哪些優化?48
- 為什么說 Synchronized 是非公平鎖?49
- 什么是鎖消除和鎖粗化?49
- 為什么說 Synchronized 是一個悲觀鎖?樂觀鎖的實作原理又是什么?什么是 CAS,它有什么特性?
- 樂觀鎖一定就是好的嗎?
- 跟 Synchronized 相比,可重入鎖 ReentrantLock 其實作原理有什么不同?
- 那么請談談 AQS 框架是怎么回事兒?
- 請盡可能詳盡地對比下 Synchronized 和 ReentrantLock 的異同,
- ReentrantLock 是如何實作可重入性的?
- 除了 ReetrantLock,你還接觸過 JUC 中的哪些并發工具?
- 請談談 ReadWriteLock 和 StampedLock,
- 如何讓 Java 的執行緒彼此同步?你了解過哪些同步器?請分別介紹下,
- CyclicBarrier 和 CountDownLatch 看起來很相似,請對比下呢?
- Java 執行緒池相關問題
- Java 中的執行緒池是如何實作的?
- 創建執行緒池的幾個核心構造引數?
- 執行緒池中的執行緒是怎么創建的?是一開始就隨著執行緒池的啟動創建好的嗎?
- 既然提到可以通過配置不同引數創建出不同的執行緒池,那么 Java 中默認實作好的執行緒池又有哪些呢?請比較它們的異同
- 如何在 Java 執行緒池中提交執行緒?
- 什么是 Java 的記憶體模型,Java 中各個執行緒是怎么彼此看到對方的變數的?
- 請談談 volatile 有什么特點,為什么它能保證變數對所有執行緒的可見性?
- 既然 volatile 能夠保證執行緒間的變數可見性,是不是就意味著基于 volatile 變數的運算就是并發安全的?
- 請對比下 volatile 對比 Synchronized 的異同,
- 請談談 ThreadLocal 是怎么解決并發安全的?
- 很多人都說要慎用 ThreadLocal,談談你的理解,使用 ThreadLocal 需要注意些什么?

Spring
1、什么是Spring框架? Spring框架有哪些主要模塊?
2、使用Spring框架能帶來哪些好處?
3、什么是控制反轉(IOC)?什么是依賴注入?
4、請解釋下Spring 框架中的IoC?
5、BeanFactory 和ApplicationContext有什么區別?
6.Spring有幾種配置方式?
7、如何用基于XML配置的方式配置Spring ?
8、如何用基于Java配置的方式配置Spring ?
9、怎樣用注解的方式配置Spring ?
10、請解釋SpringBean的生命周期?
11、Spring Bean的作用域之間有什么區別?
12、什么是Spring inner beans ?
13、Spring框架中的單例Beans是執行緒安全的么?
14、請舉例說明如何在Spring中注入一個Java Collection ?
15、如何向Spring Bean中注入一個Java.util.Properties ?
16、請解釋Spring Bean的自動裝配?
17、請解釋自動裝配模式的區別?
18、如何開啟基于注解的自動裝配?
19請舉例解釋@Required注解?
20、請舉例解釋@Autowired注解?
22、構造方法注入和設值注入有什么區別?
23、Spring框架中有哪些不同美型的事件?
24、FileSystemResource和ClassPathResource有何區別?
25、Spring框架中都用到了哪些設計模式?

Redis
- 什么是redis?
- Reids的特點
- Redis支持的資料型別
- Redis是單行程單執行緒的
- 虛擬記憶體
- Redis鎖
- 讀寫分離模型
- 資料分片模型
- Redis的回收策略
- 使用Redis有哪些好處?
- redis相比memcached有哪些優勢?4
- redis常見性能問題和解決方案
- MySQL里有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料245
- Memcache與Redis的區別都有哪些?
- Redis 常見的性能問題都有哪些?如何解決?
- Redis 最適合的場景

微服務58題(SpringBoot、SpringCloud、Dubbo)
SpringBoot面試題
- 什么是 Spring Boot?以及Spring Boot的優劣勢?
- 為什么要用 Spring Boot?
- Spring Boot 的核心組態檔有哪幾個?它們的區別是什么?
- Spring Boot 的組態檔有哪幾種格式?它們有什么區別?
- Spring Boot 的核心注解是哪個?它主要由哪幾個注解組成的?
- 開啟 Spring Boot 特性有哪幾種方式?
- Spring Boot 需要獨立的容器運行嗎?
- 運行 Spring Boot 有哪幾種方式?
- Spring Boot 自動配置原理是什么?
- Spring Boot 的目錄結構是怎樣的?
- 你如何理解 Spring Boot 中的 Starters?
- 如何在 Spring Boot 啟動的時候運行一些特定的代碼?
- Spring Boot 有哪幾種讀取配置的方式?
- Spring Boot 支持哪些日志框架?推薦和默認的日志框架是哪個?
- SpringBoot 實作熱部署有哪幾種方式?
- 你如何理解 Spring Boot 配置加載順序?
- Spring Boot 如何定義多套不同環境配置?
- Spring Boot 可以兼容老 Spring 專案嗎,如何做?
- 保護 Spring Boot 應用有哪些方法?
- Spring Boot 2.X 有什么新特性?與 1.X 有什么區別?
Dubbo面試題
- Dubbo與DubboX區別
- Dubbo中zookeeper做注冊中心,如果注冊中心集群都掛掉,發布者和訂閱者之間還能通信么?
- Dubbo中有哪些角色?
- Dubbo在安全機制方面是如何解決的
- Dubbo執行流程?
- Dubbo支持的協議有哪些?
- Dubbo支持的注冊中心有哪些?
- dubbo服務負載均衡策略?
- dubbo核心的配置有哪些?dubbo推薦用什么協議?
- dubbo連接注冊中心和直連的區別
- dubbo通信協議dubbo協議為什么不能傳大包
- dubbo通信協議dubbo協議為什么要消費者比提供者個數多
- dubbo通信協議dubbo協議為什么采用異步單一長連接
- dubbo通信協議dubbo協議適用范圍和適用場景
- Spring Cloud與Dubbo的區別是什么?
- 什么是Dubbo?
- 簡述Dubbo的均衡策略和集群容錯模式
- 為什么要用 Dubbo?
- Dubbo 的整體架構設計有哪些分層?
- 默認使用的是什么通信框架,還有別的選擇嗎?
- 服務呼叫是阻塞的嗎?
- 一般使用什么注冊中心?還有別的選擇嗎?
- 默認使用什么序列化框架,你知道的還有哪些?
- 服務提供者能實作失效踢出是什么原理?
- 服務上線怎么不影響舊版本?
- 如何解決服務呼叫鏈過長的問題?
- 說說核心的配置有哪些?
- Dubbo 推薦用什么協議?
- 同一個服務多個注冊的情況下可以直連某一個服務嗎?
- 畫一畫服務注冊與發現的流程圖?
- Dubbo 集群容錯有幾種方案?
- Dubbo 服務降級,失敗重試怎么做?
- Dubbo 使用程序中都遇到了些什么問題?
- Dubbo Monitor 實作原理?
- Dubbo 用到哪些設計模式?
- Dubbo 組態檔是如何加載到 Spring 中的?
- Dubbo SPI 和 Java SPI 區別?
- Dubbo 支持分布式事務嗎?
- Dubbo 可以對結果進行快取嗎?
- 服務上線怎么兼容舊版本?
- Dubbo 必須依賴的包有哪些?
- Dubbo telnet 命令能做什么?
- Dubbo 如何優雅停機?
- Dubbo 和 Spring Cloud 的區別?
- 你還了解別的分布式框架嗎?
SpringCloud面試題
- 什么是 Spring Cloud?
- 使用 Spring Cloud 有什么優勢?
- 服務注冊和發現是什么意思?Spring Cloud 如何實作?
- Spring Cloud 和dubbo區別?
- SpringBoot和SpringCloud的區別?
- 負載平衡的意義什么?
- 什么是 Hystrix?它如何實作容錯?
- 什么是 Hystrix 斷路器?我們需要它嗎?
- 什么是 Netflix Feign?它的優點是什么?
- 什么是 Spring Cloud Bus?我們需要它嗎?
- Spring Cloud斷路器的作用
- 什么是SpringCloudConfig?
- Spring Cloud Gateway?

后面還有關于 springMVC,netty,網路,zookeeper,kafka,rabbitMQ,資料庫,設計模式等,就不在這里一一給大家展示了,
需要這些面試資料的讀者朋友可以幫忙點贊后,私信我【面試資料】就可以了(一定要記得關注我,不然沒辦法回復陌生人私信),希望大家都能夠拿到一個心怡的offer,


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/167039.html
標籤:AI
下一篇:第六章 訪問權限控制
