2021年春招,Java後端最全面試攻略,吃透25個技術棧

前言

小編分享的這份春招Java後端開發面試總結包含了JavaOOP、Java集合容器、Java異常、併發編程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL數據庫、消息中間件MQ、Dubbo、Linux、ZooKeeper、 分佈式&數據結構與算法等25個專題技術點,都是小編在各個大廠總結出來的面試真題,已經有不少粉絲靠這份PDF拿下衆多大廠的offer,今天在這裏總結分享給到你們!前端

小編這篇分享篇幅可能有點長,觀看的朋友能夠先了解一下目錄java

  1. JavaOOP面試題
  2. Java集合/泛型面試題
  3. Java異常面試題
  4. Java中的IO與NIO面試題
  5. Java反射面試題
  6. Java序列化面試題
  7. Java註解面試題
  8. 多線程&併發面試題
  9. JVM面試題
  10. Mysql面試題
  11. Redis面試題
  12. Memcached面試題
  13. MongoDB面試題
  14. String面試題
  15. Spring Cloud面試題
  16. RabbitMQ面試題
  17. Dubbo 面試題
  18. MyBatis 面試題
  19. ZooKeeper 面試題
  20. 數據結構面試題
  21. 算法面試題
  22. Elasticsearch 面試題
  23. Kafka 面試題
  24. 微服務 面試題
  25. Linux面試題

2021年春招,Java後端最全面試攻略,吃透25個技術棧

1、JavaOOP面試題

一、short s1 = 1; s1 = s1 + 1;有錯嗎? short s1 = 1; s1 += 1; 有錯嗎?mysql

二、重載和重寫的區別linux

三、數組實例化有幾種方式?nginx

四、Java中各類數據默認值面試

五、Object類經常使用方法有那些?redis

六、java中是值傳遞引用傳遞?算法

七、形參與實參區別spring

八、構造方法能不能重寫?能不能重載?sql

九、內部類與靜態內部類的區別?

十、Static關鍵字有什麼做用?

十一、final在java中的做用,有哪些用法?

十二、String str=」aaa」,與String str=new String(「aaa」)同樣嗎?

1三、講下java中的math類有那些經常使用方法?

1四、Char類型能不能轉成int類型?能不能轉化成string類型,能不能轉成double類型

1五、什麼是拆裝箱?

1六、Java中的包裝類都是那些?

1七、一個java類中包含那些內容?

1八、那針對浮點型數據運算出現的偏差的問題,你怎麼解決?

1九、面向對象的特徵有哪些方面?

20、訪問修飾符 public,private,protected,以及不寫(默認) 時的區別?

2一、接口有什麼特色?

2二、抽象類和接口的區別?

2三、Hashcode的做用

2四、普通類與抽象類有什麼區別?

2五、什麼是接口?爲何須要接口?

2六、接口有什麼特色?

2七、拷貝和淺拷貝的區別是什麼?

2八、JDBC操做的步驟

2九、何時用assert

30、數組有沒有length()這個方法? String有沒有length()這個方法

3一、用最有效率的方法算出2乘以8等於幾?

3二、String 和 StringBuilder、StringBuffer 的區別?

3三、接口是否可繼承(extends)接口?抽象類是否可實現(implements)接口?抽象類是否可繼承具體類(concreteclass)?

3四、一個」.java」源文件中是否能夠包含多個類(不是內部類)?有什麼限制?

3五、Java 中的 final 關鍵字有哪些用法?

2、Java集合/泛型面試題

2021年春招,Java後端最全面試攻略,吃透25個技術棧

一、ArrayList和linkedList的區別

二、HashMap排序題

三、Collection包結構,與Collections的區別

四、帶集合參數的構造器

五、說說List,Set,Map三者的區別

六、併發集合和普通集合如何區別?

七、Map有什麼特色

八、集合類存放於 Java.util 包中, 主要有幾 種接口

九、什麼是list接口

十、說說ArrayList(數組)

十一、Vector( 數組實現、 線程同步)

十二、說說LinkList(鏈表)

1三、什麼Set集合

1四、HashSet( Hash 表)

1五、什麼是TreeSet(二叉樹)

1六、List 和 Map、Set 的區別?

1七、數組和鏈表分別比較適合用於什麼場景,爲何?

1八、說說ConcurrentHashMap

1九、Java中ArrayList和LinkedList區別?

20、TreeMap(可排序)

2一、請用兩個隊列模擬堆棧結構?

2二、Map中的key和value能夠爲null?

2三、數據結構基礎之雙向鏈表

2四、HashMap的底層實現

2五、ConcurrentHashMap 和 Hashtable 的區別

2六、說出ArrayList,Vector,LinkedList的存儲性能和特性

2七、你所知道的集合類都有哪些?主要方法?

2八、HashMap原理,java8作了什麼改變

2九、poll()方法和 remove()方法的區別?

30、寫一段代碼在遍歷 ArrayList 時移除一個元素

3、Java異常面試題

一、Java中異常分爲哪兩種?

編譯時異常

運行時異常

二、異常的處理機制有幾種?

異常捕捉:try…catch…finally,異常拋出:throws。 public class Box<T> { private T t; public void add(T t) { this.t = t; }public T get() { return t; } }

三、如何自定義一個異常

繼承一個異常類,一般是RumtimeException或者Exception

四、try catch fifinally,try裏有return,finally還執行麼?

執行,而且finally的執行早於try裏面的return

結論:

一、無論有木有出現異常,finally塊中代碼都會執行;

二、當try和catch中有return時,finally仍然會執行;

三、finally是在return後面的表達式運算後執行的(此時並無返回運算後的值,而是先把要返回的值保存起來,管finally中的代碼怎麼樣,返回的值都不會改變,任然是以前保存的值),因此函數返回值是在finally執行前肯定的;

四、finally中最好不要包含return,不然程序會提早退出,返回值不是try或catch中保存的返回值。

五、 Excption與Error包結構

六、Thow與thorws區別

七、Error與Exception區別?

八、error和exception有什麼區別

九、final、finally、finalize 的區別?

十、Java 異常處理機制的理解?

十一、說出最多見的5個RuntimeException?

十二、throw 和 throws 的區別?

1三、JAVA 中Exception和Error 面試問題

1四、在Java異常處理的過程當中,你遵循的那些最好的實踐是什麼?

1五、throw 和 throws這兩個關鍵字在java中有什麼不一樣?

1六、你曾經自定義實現過異常嗎?怎麼寫的?

1七、你遇到過 OutOfMemoryError 錯誤嘛?你是怎麼搞定的?

1八、Java中的異常處理機制的簡單原理和應用。

1九、最多見到的5個runtime exception。

20、JAVA語言如何進行異常處理,關鍵字:throws,throw,try,catch,finally分別表明什麼意義?在try塊中能夠拋出異常嗎?

4、Java中的IO與NIO面試題

一、Java 中 IO 流?

二、字節流如何轉爲字符流?

三、經常使用io類有那些

四、如何將一個 java 對象序列化到文件裏?

五、阻塞 IO 模型

六、字節流和字符流的區別?

七、多路複用 IO 模型

八、如何實現對象克隆?

九、異步 IO 模型

十、什麼是 java 序列化,如何實現 java 序列化?

十一、NIO 的緩衝區

十二、面向Stream和麪向Buffer

1三、Channel

1四、NIO和IO對應用的設計有何影響

1五、Selector

1六、Java IO與 NIO的區別

1七、字節流與字符流的區別

1八、非阻塞 IO 模型

1九、信號驅動 IO 模型

20、NIO 的非阻塞

2一、Buffer

2二、JAVA NIO

5、Java反射面試題

一、什麼是反射?

二、Java反射建立對象效率高仍是經過new建立對象的效率高?

三、什麼叫對象序列化,什麼是反序列化,實現對象序列化須要作哪些工做?

四、哪裏會用到反射機制?

五、反射機制的優缺點?

六、實現Java反射的類:

七、動態代理是什麼?有哪些應用?

八、Java 反射 API

九、如何使用Java的反射?

十、獲取 Class 對象有幾種方法

十一、除了使用new建立對象以外,還能夠用什麼方法建立對象?

十二、java反射的做用

1三、反射的實現方式:

1四、反射使用步驟(獲取 Class 對象、調用對象方法)

6、Java序列化面試題

一、什麼是java序列化?

二、保存(持久化)對象及其狀態到內存或者磁盤

三、序列化對象以字節數組保持-靜態成員不保存

四、Serializable 實現序列化

五、序列化 ID

六、序列化用戶遠程對象傳輸

七、writeObject 和 readObject 自定義序列化策略

八、序列化並不保存靜態變量

九、序列化(深 clone 一中實現)

十、Transient 關鍵字阻止該變量被序列化到文件中

十一、如何實現java序列化?

十二、Transient 關鍵字阻止該變量被序列化到文件中

1三、靜態變量的序列化?

7、Java註解面試題

一、4種標準元註解是哪四種?

二、什麼是註釋?他們的典型用例是什麼?

三、從標準庫中描述一些有用的註釋。

四、註解是什麼?

五、能夠從註釋方法聲明返回哪些對象類型?

六、哪些程序元素能夠註釋?

七、有沒有辦法限制能夠應用註釋的元素?

八、什麼是元註釋?

九、什麼是重複註釋?

十、你怎麼能檢索註釋?這與保留政策有何關係?

十一、Q11,是否能夠擴展註釋?

8、多線程&併發面試題

JAVA 併發知識庫

一、什麼是線程?

二、繼承 Thread 類

三、如何在java中實現線程

四、ExecutorService、 Callable、 Future 有返回值線程

五、實現多線程 Thread 和 Runnable區別?

六、4 種線程池

七、解釋java中的volatile變量

八、notify()和notifyAll()有什麼區別?

九、sleep()和wait() 有什麼區別?

十、volatile 是什麼?能夠保證有序性嗎?

十一、Thread 類中的start() 和 run() 方法有什麼區別?

十二、爲何wait, notify 和 notifyAll這些方法不在thread類裏面?

1三、共享鎖和獨佔鎖

1四、Java中interrupted 和 isInterruptedd方法的區別?

1五、Java中synchronized 和 ReentrantLock 有什麼不一樣?

1六、有三個線程T1,T2,T3,如何保證順序執行?

1七、SynchronizedMap和ConcurrentHashMap有什麼區別?

1八、什麼是線程安全

1九、重量級鎖(Mutex Lock)

20、Java線程池中submit() 和 execute()方法有什麼區別?

2一、偏向鎖

2二、說說本身是怎麼使用 synchronized 關鍵字,在項目中用到了嗎synchronized關鍵字最主要的三種使用方式

2三、什麼是線程安全?Vector是一個線程安全類嗎?

2四、Java中實現多線程有幾種方法

2五、實現 Runnable 接口。

2六、基於線程池的方式

2七、如何中止一個正在運行的線程

2八、線程基本方法

2九、線程讓步(yield)

30、線程喚醒(notify)

該資料獲取方式:關注+轉發後,關注公衆號:麒麟改bug。獲取上述資料!

9、JVM面試題

2021年春招,Java後端最全面試攻略,吃透25個技術棧

一、JVM 運行時內存

二、64 位 JVM 中,int 的長度是多數?

三、新生代、老年代、永久代

四、32 位和 64 位的 JVM,int 類型變量的長度是多數?

五、JAVA8 與元數據

六、分代收集算法

七、怎樣經過 Java 程序來判斷 JVM 是 32 位 仍是 64位?

八、分代收集算法

九、JRE、JDK、JVM 及 JIT 之間有什麼不一樣?

十、解釋 Java 堆空間及 GC?

十一、JVM 內存區域

十二、JAVA強引用、軟引用、弱引用、虛引用

1三、虛擬機棧(線程私有)

1四、分代收集算法

1五、你能保證 GC 執行嗎?

1六、怎麼獲取 Java 程序使用的內存?堆使用的百分比?

1七、在老年代-標記整理算法

1八、描述一下 JVM 加載 class 文件的原理機制

1九、Serial Old 收集器(單線程標記整理算法

20、堆(Heap-線程共享) -運行時數據區

2一、G1 收集器

2二、JVM 類加載機制

2三、堆和棧的區別

2四、什麼是Java虛擬機?爲何Java被稱做是「平臺無關的編程語言」?

2五、Parallel Old 收集器(多線程標記整理算法)

2六、垃圾收集算法

2七、Minor GC與Full GC分別在何時發生?

2八、你知道哪些JVM性能調優

2九、說一下 JVM 的主要組成部分及其做用?

30、隊列和棧是什麼?有什麼區別?

10、Mysql面試題

2021年春招,Java後端最全面試攻略,吃透25個技術棧

一、MySQL 中有哪些不一樣的表格?

二、TokuDB( Fractal Tree-節點帶數據)

三、MySQL 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?

四、Memory

五、myisamchk 是用來作什麼的?

六、MyISAM 表格將在哪裏存儲,而且還提供其存儲格式?

七、索引

八、常見索引原則有

九、如何顯示前 50 行?

十、第一範式(1st NF - 列都是不可再分)

十一、第二範式(2nd NF- 每一個表只描述一件事情)

十二、第三範式(3rd NF- 不存在對非主鍵列的傳遞依賴)

1三、鎖的優化策略

1四、SQL優化

1五、爲表中得字段選擇合適得數據類型

1六、什麼是視圖

1七、什麼狀況下設置了索引但沒法使用

1八、併發事務帶來哪些問題?

1九、SQL 語言包括哪幾部分?每部分都有哪些操做關鍵

20、什麼是鎖?

2一、說說對 SQL 語句優化有哪些方法?

2二、什麼是樂觀鎖、悲觀鎖、時間戳、行級鎖、表級鎖、頁級鎖

11、Redis面試題

2021年春招,Java後端最全面試攻略,吃透25個技術棧

一、什麼是 Redis?

二、怎麼理解 Redis 事務?

三、Redis 的數據類型?

四、Redis key 的過時時間和永久有效分別怎麼設置?

五、Redis 相比 Memcached 有哪些優點?

六、Memcache 與 Redis 的區別都有哪些?

七、Redis 回收進程如何工做的?

八、一個字符串類型的值能存儲最大容量是多少?

九、Redis 的內存用完了會發生什麼?

十、緩存雪崩、緩存穿透、緩存預熱、緩存更新、緩存降級等問題

十一、一個 Redis 實例最多能存放多少的 keys?List、Set、Sorted Set 他們最多能存放多少元素

十二、Redis 集羣之間是如何複製的?

1三、redis的數據類型,以及每種數據類型的使用場景

1四、redis的過時策略以及內存淘汰機制

1五、Redis 集羣最大節點個數是多少?

1六、爲何Redis的操做是原子性的,怎麼保證原子性的?

1七、Redis 集羣如何選擇數據庫?

1八、使用過 Redis 分佈式鎖麼,它是什麼回事

1九、怎麼測試 Redis 的連通性?

20、redis 過時鍵的刪除策略?

2一、Redis 的回收策略(淘汰策略)?

2二、爲何 edis 須要把全部數據放到內存中?

2三、Redis 是一個基於內存的高性能key-value數據庫。

2四、Reids經常使用5種數據類型

2五、Reids6種淘汰策略:

2六、Redis前端啓動命令

2七、Redis 的主從複製

2八、爲何Redis是單線程的?

2九、Redis內存模型

30、Redis沒有直接使用C字符串

12、Memcached面試題

一、Memcached 是什麼,有什麼做用?

二、memcached和MySQL的query cache相比,有什麼優缺點?

三、 可是我確實須要把memcached中的item都dump出來,確實須要把數據load到memcached中,怎麼辦?

四、memcached是如何作身份驗證的?

五、如何使用memcached的多線程是什麼?如何使用它們?

六、memcached能接受的key的最大長度是多少?(250bytes)

七、memcached對item的過時時間有什麼限制?(爲何有30天的限制?)

八、memcached最大能存儲多大的單個item?(1M byte)

九、爲何單個item的大小被限制在1M byte以內?

十、爲了讓memcached更有效地使用服務器的內存,能夠在各個服務器上配置大小不等的緩存空間嗎?

十一、什麼是binary協議?它值得關注嗎?

十二、memcached是如何分配內存的?

1三、爲何不用malloc/free!?

1四、究竟爲何使用slab呢?

1五、memcached能保證數據存儲的原子性嗎?

十3、MongoDB面試題

一、mongodb是什麼?

二、MongoDB是由哪一種語言寫的

三、你說的NoSQL數據庫是什麼意思?

四、NoSQL數據庫有哪些類型?

五、你怎麼比較MongoDB、CouchDB及CouchBase?

六、MongoDB成爲最好NoSQL數據庫的緣由是什麼?

七、MySQL與MongoDB之間最基本的差異是什麼?

八、journal回放在條目(entry)不完整時(好比恰巧有一箇中途故障了)會遇到問題嗎?

九、分析器在MongoDB中的做用是什麼?

十、名字空間(namespace)是什麼?

十一、 若是用戶移除對象的屬性,該屬性是否從存儲層中刪除?

十二、容許空值null嗎?

1三、可否使用日誌特徵進行安全備份?

1四、更新操做馬上fsync到磁盤?

1五、爲何個人數據文件如此龐大?

1六、如何執行事務/加鎖?

1七、NoSQL與RDBMS直接有什麼區別?

1八、爲何要使用和不使用NoSQL數據庫?

1九、說一說NoSQL數據庫的幾個優勢?

20、mongodb有哪些特色?

十4、String面試題

Spring Boot面試題

一、String 是基本數據類型嗎?

二、什麼是 Spring Framework?

三、String 是可變的話?

四、Spring Framework 有哪些不一樣的功能?

五、怎麼比較兩個字符串的值同樣,怎麼比較兩個字符串是否同一對象?

六、什麼是 Spring 配置文件?

七、Spring 應用程序有哪些不一樣組件?

八、使用 Spring 有哪些方式?

九、tring str = new String(「abc」);建立了幾個對象,爲何?

十、什麼是依賴注入?

十一、String.trim()方法去掉的是哪些字符?

十二、能夠自定義 java.lang.String 類並使用嗎?

1三、spring 中有多少種 IOC 容器?

1四、區分 BeanFactory 和 ApplicationContext。

1五、列舉 IoC 的一些好處。

1六、Spring IoC 的實現機制。

1七、spring 提供了哪些配置方式?

1八、什麼是 spring bean?

1九、spring 支持集中 bean scope?

20、什麼是 spring 的內部 bean?

2一、什麼是 spring 裝配

2二、spring bean 容器的生命週期是什麼樣的?

2三、自動裝配有哪些方式?

2四、如何在 spring 中啓動註解裝配?

2五、自動裝配有什麼侷限?

2六、@Component, @Controller, @Repository

2七、什麼是基於註解的容器配置

2八、@Required 註解有什麼用?

2九、列舉 Spring DAO 拋出的異常。

30、@Qualifier 註解有什麼用?

3一、@Autowired 註解有什麼用?

3二、spring DAO 有什麼用?

3三、@RequestMapping 註解有什麼用?

3四、spring JDBC API 中存在哪些類?

十5、Spring Cloud面試題

一、什麼是 Spring Cloud?

二、負載平衡的意義什麼?

三、什麼是 Spring Cloud Bus?咱們須要它嗎?

四、什麼是 Hystrix 斷路器?咱們須要它嗎?

五、什麼是 Hystrix?它如何實現容錯?

六、什麼是 Netflix Feign?它的優勢是什麼?

七、什麼是服務熔斷?什麼是服務降級

八、Eureka和zookeeper均可以提供服務註冊與發現的功能,請說說兩個的區別?

九、什麼是微服務

十、什麼是Hystrix斷路器?咱們須要它嗎

十一、spring cloud 和dubbo區別?

十二、SpringBoot和SpringCloud的區別?

1三、spring cloud 和dubbo區別?

1四、說說 RPC 的實現原理

1五、微服務之間是如何獨立通信的?

1六、使用 Spring Cloud 有什麼優點?

1七、REST 和RPC對比

1八、你所知道的微服務技術棧?

十6、RabbitMQ面試題

2021年春招,Java後端最全面試攻略,吃透25個技術棧

一、什麼是 rabbitmq

二、使用 rabbitmq 的場景

三、RabbitMQ有什麼優缺點?

四、什麼是Message?

五、爲何要使用 rabbitmq

六、消息如何分發?

七、如何確保消息正確地發送至 RabbitMQ? 如何確保消息接收方消費了消息?

八、消息怎麼路由?

九、如何確保消息不丟失?

十、消息基於什麼傳輸?

十一、如何保證消息的順序性

十二、Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什麼區別?

1三、Fanout(廣播分發)?

1四、如何保證高可用的?

1五、mq 的缺點

1六、如何保證消息的可靠傳輸?若是消息丟了怎麼辦

1七、如何避免消息重複投遞或重複消費?

1八、什麼是Message?

1九、如何解決消息隊列的延時以及過時失效問題?消息隊列滿了之後該怎麼處理?有幾百萬消息持續積壓幾小時,說說怎麼解決

20、RabbitMQ 的集羣

2一、什麼是Connection ?

2二、topic 交換器(模式匹配) ?

2三、Exchange 類型 ?

2四、設計MQ的思路

因爲篇幅有限,獲取完整面試題和答案解析能夠轉發後私信關鍵字【面試題】獲取

十7、Dubbo 面試題

一、爲何要用 Dubbo?

二、Dubbo是什麼?

三、默認使用的是什麼通訊框架,還有別的選擇嗎?

四、Dubbo 和 Spring Cloud 有什麼區別?

五、通常使用什麼註冊中心?還有別的選擇嗎?

六、dubbo都支持什麼協議,推薦用哪一種?

七、服務提供者能實現失效踢出是什麼原理?

八、Dubbo 的總體架構設計有哪些分層?

九、如何解決服務調用鏈過長的問題?

十、說說核心的配置有哪些?

十一、Dubbo 推薦用什麼協議?

十二、默認使用什麼序列化框架,你知道的還有哪些?

1三、畫一畫服務註冊與發現的流程圖?

2021年春招,Java後端最全面試攻略,吃透25個技術棧

1四、Dubbo 集羣容錯有幾種方案?

1五、服務上線怎麼不影響舊版本?

1六、Dubbo 服務降級,失敗重試怎麼作?

1七、Dubbo Monitor 實現原理?

1八、Dubbo 用到哪些設計模式?

1九、Dubbo 配置文件是如何加載到 Spring 中的?

20、服務調用是阻塞的嗎?

2一、Dubbo 支持分佈式事務嗎?

2二、Dubbo 能夠對結果進行緩存嗎?

十8、MyBatis 面試題

2021年春招,Java後端最全面試攻略,吃透25個技術棧

一、什麼是 Mybatis?

二、MyBatis實現一對一有幾種方式?具體怎麼操做的?

三、MyBatis 框架的缺點

四、MyBatis實現一對多有幾種方式,怎麼操做的?

五、MyBatis 與 Hibernate 有哪些不一樣?

六、Mybatis是否支持延遲加載?若是支持,它的實現原理是什麼?

七、當實體類中的屬性名和表中的字段名不同 ,怎麼辦 ?

八、 Mybatis的一級、二級緩存:

九、一般一個 Xml 映射文件,都會寫一個 Dao 接口與之對應,請問,這個 Dao 接口的工做原理是什麼?Dao 接口裏的方法,參數不一樣時,方法能重載嗎?

1三、使用MyBatis的mapper接口調用時有哪些要求?

1四、在 mapper 中如何傳遞多個參數?

1五、Mapper編寫有哪幾種方式?

2021年春招,Java後端最全面試攻略,吃透25個技術棧

1六、簡述Mybatis的插件運行原理,以及如何編寫一個插件。

1七、MyBatis編程步驟是什麼樣的?

十9、ZooKeeper 面試題

一、什麼是Zookeeper?

二、zookeeper的數據結構(樹)? 講一下基於它實現的分佈式鎖?基於它實現的Master選舉?基於它的集羣管理?zookeeper的註冊(watch)機制和輪詢機制的使用場景?

三、ZooKeeper 提供了什麼?

四、講一下如何用 zookeeper 實現分佈式鎖

五、ZAB 協議?

六、Zookeeper的同步過程,寫操做流程,讀操做流程

七、ZK 的部署方式有哪幾種?集羣中的角色有哪些?集羣中最少須要幾臺機器

八、客戶端註冊 Watcher 實現

九、 服務端處理 Watcher 實現

十、客戶端回調 Watcher

十一、ACL 權限控制機制

十二、服務器角色

1三、會話管理

1四、數據同步

1五、Zookeeper 下 Server 工做狀態

1六、zk 節點宕機如何處理?

1七、zookeeper 是如何保證事務的順序一致性的?

1八、分佈式集羣中爲何會有 Master?

1九、zookeeper 負載均衡和 nginx 負載均衡區別

20、Chroot 特性

2一、集羣最少要幾臺機器,集羣規則是怎樣的?

2二、集羣支持動態添加機器嗎?

2三、Zookeeper對節點的watch監聽通知是永久的嗎?爲何不是永久的?

2四、Zookeeper的java客戶端都有哪些?

2五、chubby是什麼,和zookeeper比你怎麼看?

2六、說幾個zookeeper經常使用的命令。

2七、ZAB和Paxos算法的聯繫與區別?

2八、Zookeeper的典型應用場景

二10、數據結構面試題

一、棧(stack)

棧( stack)是限制插入和刪除只能在一個位置上進行的表,該位置是表的末端,叫作棧頂(top)。它是後進先出(LIFO)的。對棧的基本操做只有 push(進棧)和 pop(出 棧)兩種,前者至關於插入,後者至關於刪除最後的元素。

二、隊列(queue)

三、排序二叉樹

四、前綴樹

五、紅黑樹

六、散列表(Hash Table)

七、B-TREE

八、位圖

九、鏈表(Link)

十、棧和隊列的共同特色是?

十一、棧一般採用的兩種存儲結構是?

十二、用鏈表表示線性表的優勢是?

1三、增長頭結點的目的是?

1四、在計算機中,算法是指?

二11、算法面試題

一、數據裏有{1,2,3,4,5,6,7,8,9},請隨機打亂順序,生成一個新的數組(請以代碼實現)

二、給定一個數組 nums,編寫一個函數將全部 0 移動到數組的末尾,同時保持非零元素的相對順序。

三、如何解決樣本類別的不均衡問題?

四、在神經網絡訓練過程當中,爲何會出現梯度消失的問題?如何防止?

五、二分查找

六、冒泡排序算法、插入排序算法、快速排序算法、希爾排序算法、歸併排序算法

七、K-Means或KNN中,一般使用歐式距離來表示最近的數據點之間的距離,有時候也使用曼哈度距離,對比二者的區別。

八、參數模型與非參數模型

九、生成模型與判別模型

十、神經網絡中參數量parameters和FLOPs計算

十一、桶排序算法、基數排序算法、剪枝算法、回溯算法

十二、AES

1三、RSA

1四、CRC

1五、最短路徑算法

1六、最小生成樹算法

1八、有兩個籃子,分別爲A 和 B,籃子A裏裝有雞蛋,籃子B裏裝有蘋果,請用面向對象的思想實現兩個籃子裏的物品交換(請用代碼實現)

1九、假設今日是2015年3月1日,星期日,請算出13個月零6天后是星期幾,距離如今多少天(請用代碼實現,謝絕調用API方法)

20、MD5

2一、寫出代碼判斷一個整數是否是2的階次方(請代碼實現,謝絕調用API方法)

二12、Elasticsearch 面試題

一、elasticsearch 瞭解多少,說說大家公司 es 的集羣架構,索引數據大小,分片有多少,以及一些調優手段 。

二、elasticsearch 索引數據多了怎麼辦,如何調優,部署

三、詳細描述一下 Elasticsearch 索引文檔的過程

四、elasticsearch 的倒排索引是什麼

五、elasticsearch 是如何實現 master 選舉的

六、詳細描述一下 Elasticsearch 搜索的過程?

七、Elasticsearch 在部署時,對 Linux 的設置有哪些優化方法

八、Elasticsearch 中的節點(好比共 20 個),其中的 10 個選了一個 master,另外 10 個選了另外一個 master,怎麼辦?

九、lucence 內部結構是什麼?

十、Elasticsearch 是如何實現 Master 選舉的?

十一、詳細描述一下 Elasticsearch 索引文檔的過程。

十二、詳細描述一下 Elasticsearch 更新和刪除文檔的過程。

1三、客戶端在和集羣鏈接時,如何選擇特定的節點執行請求的?

1四、詳細描述一下 Elasticsearch 搜索的過程

1五、在 Elasticsearch 中,是怎麼根據一個詞找到對應的倒排索引的?

1六、Elasticsearch 在部署時,對 Linux 的設置有哪些優化方法?

1七、對於 GC 方面,在使用 Elasticsearch 時要注意什麼?

1八、拼寫糾錯是如何實現的?

1九、詳細描述一下 Elasticsearch 索引文檔的過程。

20、如何監控 Elasticsearch 集羣狀態?

2一、介紹下大家電商搜索的總體技術架構?

2二、介紹一下大家的個性化搜索方案?

2三、是否瞭解字典樹?

2四、Elasticsearch 對於大數據量(上億量級)的聚合如何實現

二十3、Kafka 面試題

一、Kafka 是什麼

二、壓縮(GZIP 或 Snappy)

三、數據文件分段 segment(順序讀寫、分段命令、二分查找)

四、partition 的數據文件(offset, MessageSize, data)

五、消費者設計

六、批量發送

七、Consumer Group

八、如何獲取 topic 主題的列表

九、生產者和消費者的命令行是什麼?

十、負載均衡(partition 會均衡分佈到不一樣 broker 上)

十一、consumer 是推仍是拉?

十二、Zookeeper 對於 Kafka 的做用是什麼?

1三、Kafka 判斷一個節點是否還活着有那兩個條件?

1四、爲何須要消息系統,mysql 不能知足需求嗎?

1五、講講 kafka 維護消費狀態跟蹤的方法

1六、消費者如何不自動提交偏移量,由應用提交?

1七、Kafka 與傳統 MQ 消息系統之間有三個關鍵區別

1八、講一講 kafka 的 ack 的三種機制

1九、消費者故障,出現活鎖問題如何解決?

20、講一下主從同步:

二十4、微服務 面試題

一、微服務架構有哪些優點?

二、設計微服務的最佳實踐是什麼?

三、單片,SOA 和微服務架構有什麼區別?

四、微服務有哪些特色?

五、微服務架構如何運做?

六、在使用微服務架構時,您面臨哪些挑戰?

七、微服務架構的優缺點是什麼?

八、微服務有什麼特色?

九、什麼是領域驅動設計?

十、SOA 和微服務架構之間的主要區別是什麼?

十一、爲何須要域驅動設計(DDD)?

十二、什麼是耦合?

1三、什麼是無所不在的語言?

1四、什麼是凝聚力?

1五、你對 Spring Boot 有什麼瞭解?

1六、什麼是 REST / RESTful 以及它的用途是什麼?

1七、什麼是 Spring 引導的執行器?

1八、什麼是 Spring Cloud?

1九、Spring Cloud 解決了哪些問題?

20、在 Spring MVC 應用程序中使用 WebMvcTest 註釋有什麼用處?

2一、你可否給出關於休息和微服務的要點?

2二、您對 Distributed Transaction 有何瞭解?

2三、什麼是不一樣類型的微服務測試?

2四、什麼是有界上下文?

2五、什麼是 Idempotence 以及它在哪裏使用?

2六、什麼是雙因素身份驗證?

2七、雙因素身份驗證的憑據類型有哪些?

2八、PACT 在微服務架構中的用途是什麼?

2九、什麼是客戶證書?

二十5、Linux面試題

一、絕對路徑用什麼符號表示?當前目錄、上層目錄用什麼表示?主目錄用什麼表示? 切換目錄用什麼命令?

二、使用什麼命令查看 ip 地址及接口信息?

三、怎麼清屏?怎麼退出當前命令?怎麼執行睡眠?怎麼查看當

四、經過什麼命令指定命令提示符?

五、查看文件有哪些命令

六、列舉幾個經常使用的Linux命令

七、怎麼對命令進行取別名?

八、創建軟連接(快捷方式),以及硬連接的命令

九、當你須要給命令綁定一個宏或者按鍵的時候,應該怎麼作呢?

十、查看文件內容有哪些命令可使用?

十一、隨意寫文件命令?怎麼向屏幕輸出帶空格的字符串,好比」hello world」?

十二、你的系統目前有許多正在運行的任務,在不重啓機器的條件下,有什麼方法能夠把全部正在運行的進程移除呢?

1三、移動文件用哪一個命令?更名用哪一個命令?

1四、複製文件用哪一個命令?若是須要連同文件夾一塊複製呢?若是須要有提示功能呢?

1五、怎樣一頁一頁地查看一個大文件的內容呢?

1六、Linux 下命令有哪幾種可以使用的通配符?分別表明什麼含義?

1七、用什麼命令對一個文件的內容進行統計?(行號、單詞數、字節數)

1八、Grep 命令有什麼用? 如何忽略大小寫? 如何查找不含該串的行?

1九、Linux 中進程有哪幾種狀態?在 ps 顯示出來的信息中分別用什麼符號表示的?

20、怎樣查看一個 linux 命令的概要與用法?假設你在/bin 目錄中偶然看到一個你從沒見過的的命令,怎樣才能知道它的做用和用法呢?

2一、怎麼查看當前進程?怎麼執行退出?怎麼查看當前路徑?

2二、Ls 命令執行什麼功能? 能夠帶哪些參數,有什麼區別?

2三、你平時是怎麼查看日誌的?

2四、終端是哪一個文件夾下的哪一個文件?黑洞文件是哪一個文件夾下的哪一個命令?

2五、刪除文件用哪一個命令?若是須要連目錄及目錄下文件一塊刪除呢?刪除空文件夾用什麼命令?

2六、怎麼使一個命令在後臺運行?

2七、目錄建立用什麼命令?建立文件用什麼命令?複製文件用什麼命令?

2八、使用哪個命令能夠查看本身文件系統的磁盤空間配額呢?

以上是2021春招Java後端開發面試總結【25個技術專題】,因爲篇幅有限,每一個專題面試題只有部分的面試題,下面是整理的合集。

該資料獲取方式:關注+轉發後,關注公衆號:麒麟改bug。獲取上述資料!

2021年春招,Java後端最全面試攻略,吃透25個技術棧

最後

篇幅有限,其餘內容就不在這裏一一展現了,2021春招Java後端開發面試總結一共25個專題,整理不易,需歡迎你們一塊兒交流,喜歡文章記得關注我點贊喲,感謝支持!重要的事情說三遍,轉發+轉發+轉發,必定要記得轉發哦!!!

相關文章
相關標籤/搜索