年度盤點:2020年Java後端面試題整理(軟體開發的同行多關注)

致已經過去的2020年!

對於生命垂危的病人來說,時刻就是寶貴的生命;對於做生意的人來說,時刻就是財富,有的人說時刻就像是從山坡上流下來的水,從何處吹來的風,走了就不再回來了;而對於正在工作的我們來說,時刻就是力量,時刻就是財產。珍惜時刻就是掌握好生命的一半。

魯迅說過:“時間,每天得到的都是二十四小時,可是一天的時間給勤勉的人帶來智慧和力量,給懶散的人只留下一片悔恨。”

今天帶給大家的是本人總結的2020年年度Java面試題。希望能對大家有幫助。

一、Java基礎專題

1。面向物件和麵向過程的區別(優點和缺點分別是什麼?)

2。Java 語言有哪些特點?(8個點)

3。關於JVM JDK和JRE最詳細通俗的解答。

4。Oracle JDK和OpenJDK的對比

5。Java和C++的區別。

6。什麼是Java程式的主類應用程式和小程式的主類有何不同?

7。Java應用程式與小程式之間有哪些差別?

8。字元型常量和字串常量的區別。

9。構造器Constructor是否可被override?

10。過載和重寫的區別。

11。Java面向物件程式設計三大特性: 封裝 繼承 多型。

12。String StringBuffer和StringBuilder的區別是什麼String為什麼是不可變的?

13。自動裝箱與拆箱

年度盤點:2020年Java後端面試題整理(軟體開發的同行多關注)

二、效能調優專題

JVM

1。記憶體模型以及分割槽,需要詳細到每個區放什麼?

2。堆裡面的分割槽:Eden,survival(from+ to)老年代,各自的特點。

3。物件建立方法,物件的記憶體分配,物件的訪問定位。

4。GC的兩種判定方法,SafePoint是什麼?

5。GC的三種收集方法:標記清除、標記整理、複製演算法的原理與特點,分別用在什麼地方,如果讓你最佳化收集方法,有什麼思路?

6。GC收集器有哪些?CMS收集器與G1收集器的特點。

7。Minor GC與Full GC分別在什麼時候發生?

8。幾種常用的記憶體除錯工具:jmap、jstack、jconsole、jhat

9。JVM記憶體分哪幾個區,每個區的作用是什麼?

10。如何判斷一個物件是否存活?(或者GC物件的判定方法)

11。簡述 java垃圾回收機制? java中垃圾收集的方法有哪些?

年度盤點:2020年Java後端面試題整理(軟體開發的同行多關注)

Mysql

1。資料庫三正規化是什麼?MySQL中有哪些不同的表格?

2。有哪些資料庫最佳化方面的經驗 ?

3。請簡述常用的索引有哪些種類?

4。簡述在MySQ資料庫中MyISAM和InnoDB的區別。

5。MySQL中InnoDB支援的四種事務隔離級別名稱,以及逐級之間的區別?

6。CHAR和VARCHAR的區別?

7。TokuDB( Fractal Tree-節點帶資料)

8。簡單說一說drop、delete與truncate的區別。

9。什麼是檢視?什麼是內聯接、左外聯接、右外聯接?

10。事務隔離級別有哪些?MySQL的預設隔離級別是?

11。MySQL_fetch_array和MySQL_fetch_object的區別是什麼?

12。MySQL資料庫作釋出系統的儲存,一天五萬條以上的增量,預計運維三年,怎麼最佳化?

Tomcat

1。Tomcat的預設埠是多少,怎麼修改?

2。Tomcat有哪幾種Connector執行模式(最佳化)?

3。Tomcat有幾種部署方式?

4。Tomcat容器是如何建立servlet 類例項?用到了什麼原理?

5。Tomcat工作模式?

6。記憶體調優,垃圾回收策略調優

Nginx

1。什麼是Nginx?列 Nginx的一些特性。

2。列舉Nginx和Apache之間的不同點,解釋Nginx如何處理HTTP請求。

3。在Nginx中,如何使用未定義的伺服器名稱來阻止處理請求?

4。使用“反向代理伺服器”的優點是什麼?

5。列舉Nginx伺服器的最佳用途。

6。解釋Nginx伺服器上的Master和Worker程序分別是什麼?

7。解釋你如何透過不同於80的埠開啟Nginx?

8。解釋是否有可能將Nginx的錯誤替換為502錯誤、503?

9。在Nginx中,解釋如何在URL中保留雙斜線?

10。解釋ngx_http_upstream_module的作用是什麼?

11。解釋如何在Nginx伺服器上新增模組?

三、併發程式設計專題

1。Synchronized用過嗎 , 其原理是什麼 ?

2。獲取物件的鎖,這 個“ 鎖“到底是什麼 ? 如何確定物件的鎖 ?

3。什麼是可重入性,為什麼說Synchronized是可重入鎖 ?

4。JVM對Java的原生鎖做了哪些最佳化 ?

5。為什麼說Synchronized是非公平鎖?

6。為什麼說Synchronized是一個悲觀鎖?樂觀鎖的實現原理又是什麼?什麼是CAS,它有什麼特性?

7。跟Synchronized相 比,可重入鎖ReentrantLock其實現原理有什麼不同?

8。在 java中wait和sleep方法的不同?

9。用Java程式設計一個會導致死鎖的程式,你將怎麼解決?

10。什麼是原子操作,Java中的原子操作是什麼?

11。Java中的volatile關鍵是什麼作用?怎樣使用它?在Java中它跟synchronized方法有什麼不同?

12。為什麼我們呼叫start()方法時會執行run()方法,為什麼我們不能直接呼叫run()方法?

13。Java中你怎樣喚醒一個阻塞的執行緒?

14。在Java中CycliBarriar和CountdownLatch有什麼區別?

15。你在多執行緒環境中遇到的常見的問題是什麼?你是怎麼解決它的?

四、框架原始碼系列

Spring IOC

1。Spring IOC如何實現?什麼是Spring IOC容器?

2。IOC的優點是什麼?

3。有哪些不同型別的IOC(依賴注入)方式?什麼是依賴注入?

4。哪種依賴注入方式你建議使用,構造器注入,還是Setter方法注入?

5。Spring中有多少種IOC容器?

6。Spring IoC的實現機制。

7。Spring Bean的生命週期。

8。Bean Factory和Application Context有什麼區別?

9。Spring應用程式有哪些不同元件?

10。什麼是spring的內部bean?

11。什麼是基於註解的容器配置?如何在spring中啟動註解裝配?

12。Spring支援哪些ORM框架?

年度盤點:2020年Java後端面試題整理(軟體開發的同行多關注)

Spring Aop

1。Spring AOP實現原理,什麼是Aspect?

2。動態代理(cglib 與 JDK)AOP有哪些實現方式?

3。Spring事務底層原理是什麼?如何自定義註解實現功能?

4。什麼是切點(JoinPoint)?麼是通知(Advice)? 有哪些型別的通知(Advice)?

5。指出在Spring Aop中concern和cross-cutting concern的不同之處。

年度盤點:2020年Java後端面試題整理(軟體開發的同行多關注)

Spring MVC

1。Spring MVC框架有什麼用?描述一下DispatcherServlet的工作流程。

2。介紹一下Web Application Context。

3。SpringMvc的控制器是不是單例模式,如果是,有什麼問題,怎麼解決?

4。SpingMvc中的控制器的註解一般用哪個,有沒有別的註解可以替代?

5。@RequestMapping註解用在類上面有什麼作用?

6。如果在攔截請求中,我想攔截get方式提交的方法,怎麼配置?

7。SpringMvc中函式的返回值是什麼?SpringMVC怎麼樣設定重定向和轉發的?

8。SpringMvc中有個類把檢視和資料都合併的一起的,叫什麼?

9。怎麼樣把ModelMap裡面的資料放入Session裡面?SpringMvc怎麼和AJAX相互呼叫的?

年度盤點:2020年Java後端面試題整理(軟體開發的同行多關注)

Mybatis

1。什麼是 MyBatis?講下MyBatis的快取。

2。Mybatis是如何進行分頁的?分頁外掛的原理是什麼?

3。簡述Mybatis的外掛執行原理,以及如何編寫一個外掛?

4。Mybatis動態sql是做什麼的?都有哪些動態sql?能簡述一下動態sql的執行原理不?

5。#{}和${}的區別是什麼?

6。為什麼說Mybatis是半自動ORM對映工具?它與全自動的區別在哪裡?

7。Mybatis是否支援延遲載入?如果支援,它的實現原理是什麼?

8。MyBatis與Hibernate有哪些不同?

9。簡述Mybatis的Xml對映檔案和Mybatis內部資料結構之間的對映關係?

10。MyBatis裡面的動態Sql是怎麼設定的?用什麼語法?

年度盤點:2020年Java後端面試題整理(軟體開發的同行多關注)

五、分散式專題

Redis

1。簡述什麼是Redis?

2。Redis的資料型別?使用Redis有哪些好處?

3。Redis相比Memcached有哪些優勢?

4。Memcache與Redis的區別都有哪些?

5。Redis是單程序單執行緒的?一個字串型別的值能儲存最大容量是多少?

6。Redis的持久化機制是什麼?各自的優缺點?

7。Redis過期鍵的刪除策略?Redis的回收策略(淘汰策略)?

8。為什麼Redis需要把所有資料放到記憶體中?

9。Redis的同步機制瞭解麼?Pipeline有什麼好處,為什麼要用pipeline?

10。Redis叢集方案什麼情況下會導致整個叢集不可用?

11。Jedis與Redisson對比有什麼優缺點?

Kafka

1。Kafka的設計時什麼樣的呢?

2。資料傳輸的事物定義有哪三種?

3。Kafka判斷一個節點是否還活著有那兩個條件?

4。producer是否直接將資料傳送到broker的leader(主節點)?

5。Kafa consumer是否可以消費指定分割槽訊息?

6。Kafka訊息是採用Pull模式,還是Push模式?

7。Kafka儲存在硬碟上的訊息格式是什麼?

8。Kafka高效檔案儲存設計特點,Kafka與傳統訊息系統之間有哪三個關鍵區別?

9。partition的資料如何儲存到硬碟。

10。Kafka的消費者如何消費資料?消費者負載均衡策略。

Netty

1。Netty原理,Netty高效能。

2。Netty RPC實現,RMI實現方式。

3。Protoclol Buffer,Thrift。

4。Netty的執行緒模型?

5。TCP粘包/拆包的原因及解決方法?

6。瞭解哪幾種序列化協議?如何選擇序列化協議?

7。Netty 的零複製實現?Netty的高效能表現在哪些方面?

8。NIOEventLoopGroup原始碼?

Dubbo

1。為什麼要用Dubbo?Dubbo的整體架構設計有哪些分層?

2。預設使用的是什麼通訊框架,還有別的選擇嗎?服務呼叫是阻塞的嗎?

3。一般使用什麼註冊中心?還有別的選擇嗎?

4。預設使用什麼序列化框架,你知道的還有哪些?

5。服務提供者能實現失效提出是什麼原理?

6。說說核心的配置有哪些?

7。同一個服務多個註冊的情況下可以直連某一個服務嗎?

8。畫一畫服務註冊與發現的流程圖?

9。Dubbo框架設計一共劃分了哪10個層?

ZooKeeper

1。Zookeeper保證了哪些分散式一致性特性?

2。ZAB協議是什麼?四種類型的資料節點Znode。

3。zk的配置管理(檔案系統、通知機制)zk的命名服務(檔案系統)。

4。Zookeeper叢集管理(檔案系統、通知機制)Zookeeper分散式鎖(檔案系統、通知機制)。

5。Zookeeper佇列管理(檔案系統、通知機制)Zookeeper資料複製。

6。zookeeper是如何保證事務的順序一致性的?

RabbitMQ

1。RabbitMQ中的broker是指什麼?cluster又是指什麼?

2。什麼是元資料?元資料分為哪些型別?包括哪些內容?與cluster相關的元資料有哪些?元資料是如何儲存的?元資料在cluster中是如何分佈的?

3。RAM node和disk node的區別?

4。RabbitMQ概念裡的channel、exchange和queue這些東東是邏輯概念,還是對應著程序實體?這些東東分別起什麼作用?

5。vhost是什麼?起什麼作用?

6。客戶端連線到cluster中的任意node上是否都能正常工作?

7。能夠在地理上分開的不同資料中心使用RabbitMQ cluster麼?

8。如何確保訊息正確地傳送至 RabbitMQ? 如何確保訊息接收方消費了訊息?

六、微服務專題

Spring Boot

1。什麼是Spring Boot?

2。Spring Boot有哪些優點?

3。什麼是JavaConfig?

4。如何重新載入Spring Boot上的更改,而無需重新啟動伺服器?

5。Spring Boot中的監視器是什麼?

6。如何在Spring Boot中禁用Actuator端點安全性?

7如何在自定義埠上執行Spring Boot應用程式?

8。如何使用Spring Boot實現分頁和排序?

Spring Cloud

1。什麼是Spring Cloud?使用Spring Cloud有什麼優勢?

2。服務註冊和發現是什麼意思?Spring Cloud如何實現?

3。負載平衡的意義什麼?什麼是Hystrix?它如何實現容錯?

4。什麼是Hystrix 斷路器?我們需要它嗎?什麼是Netflix Feign?它的優點是什麼?

5。什麼是Spring Cloud Bus?我們需要它嗎?

資料結構

1。棧(stack)佇列(queue)連結串列(Link)散列表(Hash Table)。

2。排序二叉樹、插入操作、刪除操作、查詢操作。

3。紅黑樹、左旋、右旋、新增、刪除、B-TREE、點陣圖。

4。加密演算法

最後

考慮篇幅,就著重挑了一些常見的重要的面試題展示出來了。

所有的面試題目都不是一成不變的,上面的面試題只是給大家一個借鑑作用,最主要的是給自己增加知識的儲備,有備無患。

年度盤點:2020年Java後端面試題整理(軟體開發的同行多關注)

年度盤點:2020年Java後端面試題整理(軟體開發的同行多關注)

關注我(安徽木子林科技),瞭解更多開發小知識;歡迎評論區留下您寶貴意見。