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團長,然后回復“面試手冊”即可獲取~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM