2020年最新版Java面試題大全

前言
本套Java面試題大全總共分為以下這三個模塊:
- Java基礎(chǔ)知識面試題
- Java異常面試題
- JVM面試題
一、Java基礎(chǔ)知識面試題
1、Java概述
- 何為編程?
- 什么是Java?
- jdk1.5之后的三大版本?
- JVM、JRE和JDK的關(guān)系?
- 什么是跨平臺性?原理是什么?
- Java語言有哪些特點?
- 什么是字節(jié)碼?采用字節(jié)碼的最大好處是什么?
- 什么是Java程序的主類?應(yīng)用程序和小程序的主類有何不同?
- Java應(yīng)用程序與小程序之間有那些差別?
- Java和C++的區(qū)別?
- Oracle JDK 和 OpenJDK 的對比?
2、基礎(chǔ)語法
①. 數(shù)據(jù)類型
- Java有哪些數(shù)據(jù)類型
- 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,以及不寫(默認(rèn))時的區(qū)別
⑤. 運算符
&和&&的區(qū)別
⑥. 關(guān)鍵字
- Java 有沒有 goto
- final 有什么用?
- final finally finalize區(qū)別
- this關(guān)鍵字的用法
- super關(guān)鍵字的用法
- this與super的區(qū)別
- static存在的主要意義
- static的獨特之處
- static應(yīng)用場景
- static注意事項
⑦. 流程控制語句
- break ,continue ,return 的區(qū)別及作用
- 在 Java 中,如何跳出當(dāng)前的多重嵌套循環(huán)
3、面向?qū)ο?/strong>
①. 面向?qū)ο蟾攀?/p>
面向?qū)ο蠛兔嫦蜻^程的區(qū)別
②. 面向?qū)ο笕筇匦?/p>
- 面向?qū)ο蟮奶卣饔心男┓矫?/li>
- 什么是多態(tài)機制?Java語言是如何實現(xiàn)多態(tài)的?
- 面向?qū)ο笪宕蠡驹瓌t是什么(可選)
③. 類與接口
- 抽象類和接口的對比
- 普通類和抽象類有哪些區(qū)別?
- 抽象類能使用 final 修飾嗎?
- 創(chuàng)建一個對象用什么關(guān)鍵字?對象實例與對象引用有何不同?
④. 變量與方法
- 成員變量與局部變量的區(qū)別有哪些
- 在Java中定義一個不做事且沒有參數(shù)的構(gòu)造方法的作用
- 在調(diào)用子類構(gòu)造方法之前會先調(diào)用父類沒有參數(shù)的構(gòu)造方法,其目的是?
- 一個類的構(gòu)造方法的作用是什么?若一個類沒有聲明構(gòu)造方法,改程序能正確執(zhí)行嗎?為什么?
- 構(gòu)造方法有哪些特性?
- 靜態(tài)變量和實例變量區(qū)別
- 靜態(tài)變量與普通變量區(qū)別
- 靜態(tài)方法和實例方法有何不同?
- 在一個靜態(tài)方法內(nèi)調(diào)用一個非靜態(tài)成員為什么是非法的?
- 什么是方法的返回值?返回值的作用是什么?
⑤. 內(nèi)部類
- 什么是內(nèi)部類?
- 內(nèi)部類的分類有哪些
- 內(nèi)部類的優(yōu)點
- 內(nèi)部類有哪些應(yīng)用場景
- 局部內(nèi)部類和匿名內(nèi)部類訪問局部變量的時候,為什么變量必須要加上final?
- 內(nèi)部類相關(guān),看程序說出運行結(jié)果
⑥. 重寫與重載
- 構(gòu)造器(constructor)是否可被重寫(override)
- 重載(Overload)和重寫(Override)的區(qū)別。重載的方法能否根據(jù)返回類型進(jìn)行區(qū)分?
⑦. 對象相等判斷
- == 和 equals 的區(qū)別是什么
- hashCode 與 equals (重要)
- 對象的相等與指向他們的引用相等,兩者有什么不同?
⑧. 值傳遞
- 當(dāng)一個對象被當(dāng)作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞
- 為什么 Java 中只有值傳遞
- 值傳遞和引用傳遞有什么區(qū)別
⑨. Java包
- JDK 中常用的包有哪些
- import java和javax有什么區(qū)別
4、IO流
- java 中 IO 流分為幾種?
- BIO,NIO,AIO 有什么區(qū)別?
- Files的常用方法都有哪些?
5、反射
- 什么是反射機制?
- 反射機制優(yōu)缺點
- 反射機制的應(yīng)用場景有哪些?
- Java獲取反射的三種方法
6、網(wǎng)絡(luò)編程
7、常用API
①. String相關(guān)
- 字符型常量和字符串常量的區(qū)別
- 什么是字符串常量池?
- String 是最基本的數(shù)據(jù)類型嗎
- String有哪些特性
- String為什么是不可變的嗎?
- String真的是不可變的嗎?
- 是否可以繼承 String 類
- String str="i"與 String str=new String("i")一樣嗎?
- String s = new String("xyz");創(chuàng)建了幾個字符串對象
- 如何將字符串反轉(zhuǎn)?
- 數(shù)組有沒有 length()方法?String 有沒有 length()方法
- String 類的常用方法都有那些?
- 在使用 HashMap 的時候,用 String 做 key 有什么好處?
- String和StringBuffer、StringBuilder的區(qū)別是什么?String為什么是不可變的
②. Date相關(guān)
③. 包裝類相關(guān)
- 自動裝箱與拆箱
- int 和 Integer 有什么區(qū)別
- Integer a= 127 與 Integer b = 127相等嗎
8、常用工具類庫
9、單元測試
10、日志
二、Java異常面試題
1、Error 和 Exception 區(qū)別是什么?
2、運行時異常和一般異常(受檢異常)區(qū)別是什么?
3、JVM 是如何處理異常的?
4、throw 和 throws 的區(qū)別是什么?
5、final、finally、finalize 有什么區(qū)別?
6、NoClassDefFoundError 和 ClassNotFoundException 區(qū)別?
7、try-catch-finally 中哪個部分可以省略?
8、try-catch-finally 中,如果 catch 中 return 了,finally 還會執(zhí)行嗎?
9、類 ExampleA 繼承 Exception,類 ExampleB 繼承ExampleA?
10、常見的 RuntimeException 有哪些?
11、Java常見異常有哪些?
三、JVM面試題
1、Java內(nèi)存區(qū)域
- 說一下 JVM 的主要組成部分及其作用?
- 說一下 JVM 運行時數(shù)據(jù)區(qū)?
- 深拷貝和淺拷貝?
- 說一下堆棧的區(qū)別?
- 隊列和棧是什么?有什么區(qū)別?
2、HotSpot虛擬機對象探秘
- 對象的創(chuàng)建
- 為對象分配內(nèi)存
- 處理并發(fā)安全問題
- 對象的訪問定位
3、內(nèi)存溢出異常
Java會存在內(nèi)存泄漏嗎?請簡單描述
4、垃圾收集器
- 簡述Java垃圾回收機制
- GC是什么?為什么要GC
- 垃圾回收的優(yōu)點和原理。并考慮2種回收機制
- 垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動通知虛擬機進(jìn)行垃圾回收?
- Java 中都有哪些引用類型?
- 怎么判斷對象是否可以被回收?
- 在Java中,對象什么時候可以被垃圾回收
- JVM中的永久代中會發(fā)生垃圾回收嗎
- 說一下 JVM 有哪些垃圾回收算法?
- 說一下 JVM 有哪些垃圾回收器?
- 詳細(xì)介紹一下 CMS 垃圾回收器?
- 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么區(qū)別?
- 簡述分代垃圾回收器是怎么工作的?
5、內(nèi)存分配策略
①. 簡述java內(nèi)存分配與回收策率以及Minor GC和Major GC
- 對象優(yōu)先在 Eden 區(qū)分配
- 大對象直接進(jìn)入老年代
- 長期存活對象將進(jìn)入老年代
6、虛擬機類加載機制
- 簡述java類加載機制?
- 描述一下JVM加載Class文件的原理機制
- 什么是類加載器,類加載器有哪些?
- 說一下類裝載的執(zhí)行過程?
- 什么是雙親委派模型?
7、JVM調(diào)優(yōu)
說一下 JVM 調(diào)優(yōu)的工具?
常用的 JVM 調(diào)優(yōu)的參數(shù)都有哪些?
到此這篇關(guān)于2020年最新版Java面試題大全的文章就介紹到這了,更多相關(guān)Java面試題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
- 這篇文章主要介紹了大廠Java高級工程師面試題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-07-27
- 本文是小編給大家收藏整理的關(guān)于java基礎(chǔ)面試題小結(jié),在面試中經(jīng)常會被問題,今天小編特此整理把內(nèi)容分享到腳本之家平臺,需要的朋友參考下吧2020-05-19
- 這篇文章主要介紹了字節(jié)跳動Java后端視頻面一面涼經(jīng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)2020-04-13
- 這篇文章主要介紹了100+經(jīng)典Java面試題及答案解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)2020-04-09
- 這篇文章主要介紹了抖音、騰訊、阿里、美團春招Java開發(fā)崗位硬核面試,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-18