開發十年面試過300名程式設計師,搗鼓出2020年最新版Java面試題大全值得你收藏(文末附參考答案)

2020-10-08 11:00:31

前言

本套Java面試題大全總共分為以下這十三個模組:

  1. Java基礎知識面試題

  2. Java異常面試題

  3. JVM面試題

  4. Spring面試題

  5. Spring MVC面試題

  6. Spring Boot面試題

  7. Spring Cloud面試題

  8. MyBatis面試題

  9. Redis面試題

  10. Dubbo面試題

  11. Tomcat面試題

  12. ZooKeeper面試題

  13. Netty面試題

 

一、Java基礎知識面試題

 

1、Java概述

 

  • 何為程式設計?

  • 什麼是Java?

  • jdk1.5之後的三大版本?

  • JVM、JRE和JDK的關係?

  • 什麼是跨平臺性?原理是什麼?

  • Java語言有哪些特點?

  • 什麼是位元組碼?採用位元組碼的最大好處是什麼?

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

  • Java應用程式與小程式之間有那些差別?

  • Java和C++的區別?

  • Oracle JDK 和 OpenJDK 的對比?

 

2、基礎語法

 

①. 資料型別

 

  • Java有哪些資料型別

  • switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上

  • 用最有效率的方法計算 2 乘以 8

  • Math.round(11.5) 等於多少?Math.round(-11.5)等於多少

  • float f=3.4;是否正確

  • short s1 = 1; s1 = s1 + 1;有錯嗎?short s1 = 1; s1 += 1;有錯嗎

 

②. 編碼

 

  • Java語言採用何種編碼方案?有何特點?

 

③. 註釋

 

  • 什麼Java註釋

 

④. 存取修飾符

 

  • 存取修飾符 public,private,protected,以及不寫(預設)時的區別

 

⑤. 運運算元

 

  • &和&&的區別

 

⑥. 關鍵字

 

  • Java 有沒有 goto

  • final 有什麼用?

  • final finally finalize區別

  • this關鍵字的用法

  • super關鍵字的用法

  • this與super的區別

  • static存在的主要意義

  • static的獨特之處

  • static應用場景

  • static注意事項

 

⑦. 流程控制語句

 

  • break ,continue ,return 的區別及作用

  • 在 Java 中,如何跳出當前的多重巢狀迴圈

 

3、物件導向

 

①. 物件導向概述

 

  • 物件導向和程式導向的區別

 

②. 物件導向三大特性

 

  • 物件導向的特徵有哪些方面

  • 什麼是多型機制?Java語言是如何實現多型的?

  • 物件導向五大基本原則是什麼(可選)

 

③. 類與介面

 

  • 抽象類和介面的對比

  • 普通類和抽象類有哪些區別?

  • 抽象類能使用 final 修飾嗎?

  • 建立一個物件用什麼關鍵字?物件範例與物件參照有何不同?

 

④. 變數與方法

 

  • 成員變數與區域性變數的區別有哪些

  • 在Java中定義一個不做事且沒有引數的構造方法的作用

  • 在呼叫子類構造方法之前會先呼叫父類別沒有引數的構造方法,其目的是?

  • 一個類的構造方法的作用是什麼?若一個類沒有宣告構造方法,改程式能正確執行嗎?為什麼?

  • 構造方法有哪些特性?

  • 靜態變數和範例變數區別

  • 靜態變數與普通變數區別

  • 靜態方法和實體方法有何不同?

  • 在一個靜態方法內呼叫一個非靜態成員為什麼是非法的?

  • 什麼是方法的返回值?返回值的作用是什麼?

 

⑤. 內部類

 

  • 什麼是內部類?

  • 內部類的分類有哪些

 

  • 內部類的優點

  • 內部類有哪些應用場景

  • 區域性內部類和匿名內部類存取區域性變數的時候,為什麼變數必須要加上final?

  • 內部類相關,看程式說出執行結果

 

⑥. 重寫與過載

 

  • 構造器(constructor)是否可被重寫(override)

  • 過載(Overload)和重寫(Override)的區別。過載的方法能否根據返回型別進行區分?

 

⑦. 物件相等判斷

 

  • == 和 equals 的區別是什麼

  • hashCode 與 equals (重要)

  • 物件的相等與指向他們的參照相等,兩者有什麼不同?

 

⑧. 值傳遞

 

  • 當一個物件被當作引數傳遞到一個方法後,此方法可改變這個物件的屬性,並可返回變化後的結果,那麼這裡到底是值傳遞還是參照傳遞

  • 為什麼 Java 中只有值傳遞

  • 值傳遞和參照傳遞有什麼區別

 

⑨. Java包

 

  • JDK 中常用的包有哪些

  • import java和javax有什麼區別

 

4、IO流

 

  • java 中 IO 流分為幾種?

  • BIO,NIO,AIO 有什麼區別?

  • Files的常用方法都有哪些?

 

5、反射

 

  • 什麼是反射機制?

  • 反射機制優缺點

  • 反射機制的應用場景有哪些?

  • Java獲取反射的三種方法

 

6、網路程式設計

 

7、常用API

 

①. String相關

 

  • 字元型常數和字串常數的區別

  • 什麼是字串常數池?

  • String 是最基本的資料型別嗎

  • String有哪些特性

  • String為什麼是不可變的嗎?

  • String真的是不可變的嗎?

  • 是否可以繼承 String 類

  • String str="i"與 String str=new String("i")一樣嗎?

  • String s = new String("xyz");建立了幾個字串物件

  • 如何將字串反轉?

  • 陣列有沒有 length()方法?String 有沒有 length()方法

  • String 類的常用方法都有那些?

  • 在使用 HashMap 的時候,用 String 做 key 有什麼好處?

  • String和StringBuffer、StringBuilder的區別是什麼?String為什麼是不可變的

 

②. Date相關

 

③. 包裝類相關

 

  • 自動裝箱與拆箱

  • int 和 Integer 有什麼區別

  • Integer a= 127 與 Integer b = 127相等嗎

 

8、常用工具類庫

 

9、單元測試

 

10、紀錄檔

 

二、Java異常面試題

 

1、Error 和 Exception 區別是什麼?

2、執行時異常和一般異常(受檢異常)區別是什麼?

3、JVM 是如何處理異常的?

4、throw 和 throws 的區別是什麼?

5、final、finally、finalize 有什麼區別?

6、NoClassDefFoundError 和 ClassNotFoundException 區別?

7、try-catch-finally 中哪個部分可以省略?

8、try-catch-finally 中,如果 catch 中 return 了,finally 還會執行嗎?

9、類 ExampleA 繼承 Exception,類 ExampleB 繼承ExampleA?

10、常見的 RuntimeException 有哪些?

11、Java常見異常有哪些?

 

三、JVM面試題

 

1、Java記憶體區域

 

  • 說一下 JVM 的主要組成部分及其作用?

  • 說一下 JVM 執行時資料區?

  • 深拷貝和淺拷貝?

  • 說一下堆疊的區別?

  • 佇列和棧是什麼?有什麼區別?

 

2、HotSpot虛擬機器器物件探祕

 

  • 物件的建立

  • 為物件分配記憶體

  • 處理並行安全問題

  • 物件的存取定位

 

3、記憶體溢位異常

 

  • Java會存在記憶體漏失嗎?請簡單描述

 

4、垃圾收集器

 

  • 簡述Java垃圾回收機制

  • GC是什麼?為什麼要GC

  • 垃圾回收的優點和原理。並考慮2種回收機制

  • 垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器器進行垃圾回收?

  • Java 中都有哪些參照型別?

  • 怎麼判斷物件是否可以被回收?

  • 在Java中,物件什麼時候可以被垃圾回收

  • JVM中的永久代中會發生垃圾回收嗎

  • 說一下 JVM 有哪些垃圾回收演演算法?

  • 說一下 JVM 有哪些垃圾回收器?

  • 詳細介紹一下 CMS 垃圾回收器?

  • 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什麼區別?

  • 簡述分代垃圾回收器是怎麼工作的?

 

5、記憶體分配策略

 

①. 簡述java記憶體分配與回收策率以及Minor GC和Major GC

 

  • 物件優先在 Eden 區分配

  • 大物件直接進入老年代

  • 長期存活物件將進入老年代

 

6、虛擬機器器類載入機制

 

  • 簡述java類載入機制?

  • 描述一下JVM載入Class檔案的原理機制

  • 什麼是類載入器,類載入器有哪些?

  • 說一下類裝載的執行過程?

  • 什麼是雙親委派模型?

 

7、JVM調優

 

  • 說一下 JVM 調優的工具?

  • 常用的 JVM 調優的引數都有哪些?

 


 

由於篇幅原因這裡只給大家展示了前三個模組,剩下的那十個模組就不再一一展示了哈~

都收集到了我的這分明Java大廠面試題合集裡面了

於是就有了這份《Java大廠面試題合集》並且按照細分了41個方向。

 

 

 

題庫非常全面

 

包括Java基礎、Java異常、Spring、SpirngMVC、MyBatis、SpringBoot、SpringCloud、BIO、NIO、AIO、Netty、Tomcat、Redis、MySQL、Memcache、ElasticSearch、zookeeper、RabbitMQ、Vue、Dubbo、並行程式設計、Java虛擬機器器、TCP、Http、巨量資料、設計模式、Linux等

 

 

 

 

面試題,如何獲取?