前言
在面試中,Dubbo 這個 RPC 框架的表明做一直是熱點,並且面試官也會根據經驗從各類角度提問,而且像剝洋蔥同樣層層深刻底層原理,所以單純看看常規的面試題是遠遠不足的,最好仍是可以本身深刻閱讀源碼。另外一方面,程序猿在平時的工做中又不多接觸到源碼,並且本身硬啃源碼也是困難重重。java
小編分享的這份金三銀四Java後端開發面試總結包含了JavaOOP、Java集合容器、Java異常、併發編程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL數據庫、消息中間件MQ、Dubbo、Linux、ZooKeeper、 分佈式&數據結構與算法等26個專題技術點,都是小編在各個大廠總結出來的面試真題,已經有不少粉絲靠這份PDF拿下衆多大廠的offer,今天在這裏總結分享給到你們!【持續更新中!】面試
完整版Java面試題地址:2021最新面試題合集集錦。算法
序號 |
專題 |
內容 |
連接 |
1 |
中間件 |
Java中間件面試題(2021最新版) |
https://blog.51cto.com/14994509/2692669 |
2 |
微服務 |
Java微服務面試題(2021最新版) |
http://www.javashuo.com/article/p-haiifnkb-vk.html |
3 |
併發編程 |
Java併發編程面試題(2021最新版) |
http://www.javashuo.com/article/p-rirekprn-vk.html |
4 |
Java基礎 |
Java基礎知識面試題(2021最新版) |
https://blog.51cto.com/blogger/success/2706687 |
5 |
Spring Boot |
Spring Boot面試題(2021最新版) |
持續更新中! |
6 |
Redis |
Redis面試題(2021最新版) |
持續更新中! |
7 |
Spring MVC |
Spring MVC面試題(2021最新版) |
持續更新中! |
8 |
Spring Cloud |
Spring Cloud面試題(2021最新版) |
持續更新中! |
9 |
MySQL優化 |
MySQL優化面試題(2021最新版) |
持續更新中! |
10 |
JVM |
JVM性能調優面試題(2021最新版) |
持續更新中! |
11 |
Linux |
Linux面試題(2021最新版) |
持續更新中! |
12 |
Mybatis |
Mybatis面試題(2021最新版) |
持續更新中! |
13 |
網絡編程 |
TCP,UDP,Socket,Http網絡編程面試題(2021最新版) |
持續更新中! |
14 |
設計模式 |
設計模式面試題(2021最新版) |
持續更新中! |
15 |
大數據 |
大數據面試題100道(2021最新版) |
持續更新中! |
16 |
Tomcat |
Tomcat面試題(2021最新版) |
持續更新中! |
17 |
多線程 |
多線程面試題(2021最新版) |
持續更新中! |
18 |
Nginx |
Nginx_BIO_NIO_AIO面試題(2021最新版) |
持續更新中! |
19 |
memcache |
memcache面試題(2021最新版) |
持續更新中! |
20 |
java異常 |
java異常面試題(2021最新版) |
持續更新中! |
21 |
Java虛擬機 |
Java虛擬機面試題(2021最新版) |
持續更新中! |
22 |
Java集合 |
Java集合面試題(2021最新版) |
持續更新中! |
23 |
Git經常使用命令 |
Git經常使用命令(2021最新版) |
持續更新中! |
24 |
Elasticsearch |
Elasticsearch面試題(2021最新版) |
持續更新中! |
25 |
Dubbo |
Dubbo面試題(2021最新版) |
持續更新中! |
1、Java概述
1. 何爲編程
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
2. 什麼是Java
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
3. jdk1.5以後的三大版本
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
4. Jdk和Jre和JVM的區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
5. 什麼是跨平臺性?原理是什麼
- 所謂跨平臺性,是指java語言編寫的程序,一次編譯後,能夠在多個系統平臺上運行。
- 實現原理:Java程序是經過java虛擬機在系統平臺上運行的,只要該系統能夠安裝相應的java虛擬機,該系統就能夠運行java程序。
6. Java語言有哪些特色
- 簡單易學(Java語言的語法與C語言和C++語言很接近)
- 面向對象(封裝,繼承,多態)
- 平臺無關性(Java虛擬機實現平臺無關性)
- 支持網絡編程而且很方便(Java語言誕生自己就是爲簡化網絡編程設計的)
- 支持多線程(多線程機制使應用程序在同一時間並行執行多項任)
- 健壯性(Java語言的強類型機制、異常處理、垃圾的自動收集等)
- 安全性好
7. 什麼是字節碼?採用字節碼的最大好處是什麼
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
8. 什麼是Java程序的主類?應用程序和小程序的主類有何不一樣?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
9. Java應用程序與小程序之間有那些差異?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
10. Java和C++的區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
11. Oracle JDK 和 OpenJDK 的對比
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
2、基礎語法
數據類型
12. Java有哪些數據類型
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
13. switch 是否能做用在 byte 上,是否能做用在 long 上,是否能做用在 String 上
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
14. 用最有效率的方法計算 2 乘以 8
- 2 << 3(左移 3 位至關於乘以 2 的 3 次方,右移 3 位至關於除以 2 的 3 次方)。
15. Math.round(11.5) 等於多少?Math.round(-11.5)等於多少
- Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四捨五入的原理是在參數上加 0.5 而後進行下取整。
16. float f=3.4;是否正確
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
17. short s1 = 1; s1 = s1 + 1;有錯嗎?short s1 = 1; s1 += 1;有錯嗎
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
編碼
18. Java語言採用何種編碼方案?有何特色?
- Java語言採用Unicode編碼標準,Unicode(標準碼),它爲每一個字符制訂了一個惟一的數值,所以在任何的語言,平臺,程序均可以放心的使用。
註釋
19. 什麼Java註釋
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
訪問修飾符
20. 訪問修飾符 public,private,protected,以及不寫(默認)時的區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
運算符
21. &和&&的區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
關鍵字
22. Java 有沒有 goto
- goto 是 Java 中的保留字,在目前版本的 Java 中沒有使用。
23. final 有什麼用?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
24. final finally finalize區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
25. this關鍵字的用法
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
26. super關鍵字的用法
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
class Person{
protected String name;
public Person(String name) {
this.name = name;
}
}
class Student extends Person{
private String name;
public Student(String name, String name1) {
super(name);
this.name = name1;
}
public void getInfo(){
System.out.println(this.name);
//Child
System.out.println(super.name);
//Father
}
}
public class Test {
public static void main(String[] args) {
Student s1 = new Student("Father","Child");
s1.getInfo();
}
}
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
27. this與super的區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
28. static存在的主要意義
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
29. static的獨特之處
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
30. static應用場景
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
31. static注意事項
- 一、靜態只能訪問靜態。
- 二、非靜態既能夠訪問非靜態的,也能夠訪問靜態的
流程控制語句
32. break ,continue ,return 的區別及做用
- break 跳出總上一層循環,再也不執行循環(結束當前的循環體)
- continue 跳出本次循環,繼續執行下次循環(結束正在執行的循環 進入下一個循環條件)
- return 程序返回,再也不執行下面的代碼(結束當前的方法 直接返回)
33. 在 Java 中,如何跳出當前的多重嵌套循環
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
3、面向對象
面向對象概述
34. 面向對象和麪向過程的區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
面向對象三大特性
35. 面向對象的特徵有哪些方面
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
36. 什麼是多態機制?Java語言是如何實現多態的?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
37. 面向對象五大基本原則是什麼(可選)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
38. 抽象類和接口的對比
- 抽象類是用來捕捉子類的通用特性的。接口是抽象方法的集合。
- 從設計層面來講,抽象類是對類的抽象,是一種模板設計,接口是行爲的抽象,是一種行爲的規範。
相同點 sql
- 接口和抽象類都不能實例化
- 都位於繼承的頂端,用於被其餘實現或繼承
- 都包含抽象方法,其子類都必須覆寫這些抽象方法
不一樣點數據庫
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
39. 普通類和抽象類有哪些區別?
- 普通類不能包含抽象方法,抽象類能夠包含抽象方法。
- 抽象類不能直接實例化,普通類能夠直接實例化。
40. 抽象類能使用 final 修飾嗎?
不能,定義抽象類就是讓其餘類繼承的,若是定義爲 fifinal 該類就不能被繼承,這樣彼此就會產生矛盾,因此 fifinal 不能修飾抽象類 編程
41. 建立一個對象用什麼關鍵字?對象實例與對象引用有何不一樣?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
變量與方法
42. 成員變量與局部變量的區別有哪些
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
43. 在Java中定義一個不作事且沒有參數的構造方法的做用
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
44. 在調用子類構造方法以前會先調用父類沒有參數的構造方法,其目的是?
幫助子類作初始化工做。小程序
45. 一個類的構造方法的做用是什麼?若一個類沒有聲明構造方法,改程序能正確執行嗎?爲何?
主要做用是完成對類對象的初始化工做。能夠執行。由於一個類即便沒有聲明構造方法也會有默認的不帶參數的構造方法後端
46. 構造方法有哪些特性?
- 名字與類名相同;
- 沒有返回值,但不能用void聲明構造函數;
- 生成類的對象時自動執行,無需調用。
47. 靜態變量和實例變量區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
48. 靜態變量與普通變量區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
49. 靜態方法和實例方法有何不一樣?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
50. 在一個靜態方法內調用一個非靜態成員爲何是非法的?
- 因爲靜態方法能夠不經過對象進行調用,所以在靜態方法裏,不能調用其餘非靜態變量,也不能夠訪問非靜態變量成員。
51. 什麼是方法的返回值?返回值的做用是什麼?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
內部類
52. 什麼是內部類?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
53. 內部類的分類有哪些
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
54. 內部類的優勢
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
55. 內部類有哪些應用場景
- 一些多算法場合
- 解決一些非面向對象的語句塊。
- 適當使用內部類,使得代碼更加靈活和富有擴展性。
- 當某個類除了它的外部類,再也不被其餘的類使用時。
56. 局部內部類和匿名內部類訪問局部變量的時候,爲何變量必需要加上final?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
57. 內部類相關,看程序說出運行結果
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
重寫與重載
58. 構造器(constructor)是否可被重寫(override)
構造器不能被繼承,所以不能被重寫,但能夠被重載。設計模式
59. 重載(Overload)和重寫(Override)的區別。重載的方法可否根據返回類型進行區分?
- 方法的重載和重寫都是實現多態的方式,區別在於前者實現的是編譯時的多態性,然後者實現的是運行時的多態性。
- 重載:發生在同一個類中,方法名相同參數列表不一樣(參數類型不一樣、個數不一樣、順序不一樣),與方法返回值和訪問修飾符無關,即重載的方法不能根據返回類型進行區分
- 重寫:發生在父子類中,方法名、參數列表必須相同,返回值小於等於父類,拋出的異常小於等於父類,訪問修飾符大於等於父類(里氏代換原則);若是父類方法訪問修飾符爲private則子類中就不是重寫。
對象相等判斷
60. == 和 equals 的區別是什麼
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
61. hashCode 與 equals (重要)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
62. 對象的相等與指向他們的引用相等,二者有什麼不一樣?
- 對象的相等 比的是內存中存放的內容是否相等而 引用相等 比較的是他們指向的內存地址是否相等。
值傳遞
63. 當一個對象被看成參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裏究竟是值傳遞仍是引用傳遞
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
64. 爲何 Java 中只有值傳遞
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
65. 值傳遞和引用傳遞有什麼區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
Java包
66. JDK 中經常使用的包有哪些
- java.lang:這個是系統的基礎類;
- java.io:這裏面是全部輸入輸出有關的類,好比文件操做等;
- java.nio:爲了完善 io 包中的功能,提升 io 包中性能而寫的一個新包;
- java.net:這裏面是與網絡有關的類;
- java.util:這個是系統輔助類,特別是集合類;
- java.sql:這個是數據庫操做的類。
67. import java和javax有什麼區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
4、IO流
68. java 中 IO 流分爲幾種?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
69. BIO,NIO,AIO 有什麼區別?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
70. Files的經常使用方法都有哪些?
- Files. exists():檢測文件路徑是否存在。
- Files. createFile():建立文件。
- Files. createDirectory():建立文件夾。
- Files. delete():刪除一個文件或目錄。
- Files. copy():複製文件。
- Files. move():移動文件。
- Files. size():查看文件個數。
- Files. read():讀取文件。
- Files. write():寫入文件。
5、反射
71. 什麼是反射機制?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
72. 反射機制優缺點
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
73. 反射機制的應用場景有哪些?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
74. Java獲取反射的三種方法
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
6、經常使用API
String相關
75. 字符型常量和字符串常量的區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
76. 什麼是字符串常量池?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
77. String 是最基本的數據類型嗎
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
78. String有哪些特性
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
79. String爲何是不可變的嗎?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
80. String真的是不可變的嗎?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
81. 是否能夠繼承 String 類
String 類是 fifinal 類,不能夠被繼承。 數組
82. String str="i"與 String str=new String(「i」)同樣嗎?
不同,由於內存的分配方式不同。String str="i"的方式,java 虛擬機會將其分配到常量池中;而 String str=new String(「i」) 則會被分到堆內存中。
83. String s = new String(「xyz」);建立了幾個字符串對象
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
84. 如何將字符串反轉?
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
85. 數組有沒有 length()方法?String 有沒有 length()方法
數組沒有 length()方法 ,有 length 的屬性。String 有 length()方法。JavaScript中,得到字符串的長度是經過 length 屬性獲得的,這一點容易和 Java 混淆。
86. String 類的經常使用方法都有那些?
- indexOf():返回指定字符的索引。
- charAt():返回指定索引處的字符。
- replace():字符串替換。
- trim():去除字符串兩端空白。
- split():分割字符串,返回一個分割後的字符串數組。
- getBytes():返回字符串的 byte 類型數組。
- length():返回字符串長度。
- toLowerCase():將字符串轉成小寫字母。
- toUpperCase():將字符串轉成大寫字符。
- substring():截取字符串。
- equals():字符串比較。
87. 在使用 HashMap 的時候,用 String 作 key 有什麼好處?
HashMap 內部實現是經過 key 的 hashcode 來肯定 value 的存儲位置,由於字符串是不可變的,因此當建立字符串時,它的 hashcode 被緩存下來,不須要再次計算,因此相比於其餘對象更快。
88. String和StringBuffer、StringBuilder的區別是什麼?String爲何是不可變的
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
包裝類相關
89. 自動裝箱與拆箱
- 裝箱:將基本類型用它們對應的引用類型包裝起來;
- 拆箱:將包裝類型轉換爲基本數據類型;
90. int 和 Integer 有什麼區別
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
91. Integer a= 127 與 Integer b = 127相等嗎
![Java基礎知識面試題(2021最新版)](http://static.javashuo.com/static/loading.gif)
面試題答案解析完整文檔:【Java基礎知識面試題【附答案解析】】
最後
小編分享的文章到這裏就結束了,整理不易,歡迎你們一塊兒交流,喜歡小編分享的文章記得關注我點贊喲,感謝支持!