Java面試題及答案2020最新版!

前言

花了近一個月的時間整理出了這套Java面試題及答案2020年最新版!(文末附參考答案

本套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 調優的參數都有哪些?

四、參考答案

博主已將上面這些面試題及答案整理成了一份PDF版的面試手冊,大家關注我的微信公衆號:Java團長,然後回覆“面試手冊”即可獲取~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章