Java語(yǔ)言是河北省乃至好多地區(qū)軟件開發(fā)行業(yè)最常用的語(yǔ)言之一,石家莊新華電腦學(xué)校軟件開發(fā)專業(yè)教學(xué)實(shí)力非常強(qiáng)勁,每年都培養(yǎng)很多相關(guān)專業(yè)優(yōu)秀畢業(yè)生,對(duì)于Java語(yǔ)言方向畢業(yè)生面試常見(jiàn)問(wèn)題,小編咨詢了專業(yè)的授課老師,通過(guò)以往經(jīng)驗(yàn)以及對(duì)今年熱點(diǎn)的分析,總結(jié)出2021年人才招聘過(guò)程中,Java開發(fā)工程師崗位最有可能遇到的面試問(wèn)題。
一、面試常問(wèn)方向:
多線程,并發(fā)及線程基礎(chǔ)
數(shù)據(jù)類型轉(zhuǎn)換的基本原則
垃圾回收(GC)
Java 集合框架
字符串
SOLID (單一功能、開閉原則、里氏替換、接口隔離以及依賴反轉(zhuǎn))設(shè)計(jì)原則
抽象類與接口
Java 基礎(chǔ),如 equals 和 hashcode
Java IO 與 NIO
Java 中的數(shù)據(jù)結(jié)構(gòu)和算法
JVM 底層
Java 最佳實(shí)踐
Date, Time 與 Calendar
Java 處理 XML
JUnit
二、多線程、并發(fā)及線程的基礎(chǔ)問(wèn)題
1)Java 中能創(chuàng)建 volatile 數(shù)組嗎?
2)volatile 能使得一個(gè)非原子操作變成原子操作嗎?
3)volatile 修飾符的有過(guò)什么實(shí)踐?
4)volatile 類型變量提供什么保證?
5) 10 個(gè)線程和 2 個(gè)線程的同步代碼,哪個(gè)更容易寫?
6)你是如何調(diào)用 wait()方法的?使用 if 塊還是循環(huán)?為什么?
7)什么是多線程環(huán)境下的偽共享(false sharing)?
三、 數(shù)據(jù)類型和 Java 基礎(chǔ)面試問(wèn)題
8)Java 中應(yīng)該使用什么數(shù)據(jù)類型來(lái)代表價(jià)格?
9)怎么將 byte 轉(zhuǎn)換為 String?
10)Java 中怎樣將 bytes 轉(zhuǎn)換為 long 類型?
11)我們能將 int 強(qiáng)制轉(zhuǎn)換為 byte 類型的變量嗎?如果該值大于 byte 類型的范圍,將會(huì)出現(xiàn)什么現(xiàn)象?
12)存在兩個(gè)類,B 繼承 A,C 繼承 B,我們能將 B 轉(zhuǎn)換為 C 么?如 C = © B;
13)哪個(gè)類包含 clone 方法?是 Cloneable 還是 Object?
14)Java 中 ++ 操作符是線程安全的嗎?
15)a = a + b 與 a += b 的區(qū)別
16)我能在不進(jìn)行強(qiáng)制轉(zhuǎn)換的情況下將一個(gè) double 值賦值給 long 類型的變量嗎?
17)3*0.1 == 0.3 將會(huì)返回什么?true 還是 false?
四、 JVM 底層 與 GC(Garbage Collection) 的面試問(wèn)題
18)64 位 JVM 中,int 的長(zhǎng)度是多數(shù)?
19)Serial 與 Parallel GC之間的不同之處?
20)32 位和 64 位的 JVM,int 類型變量的長(zhǎng)度是多數(shù)?
21)怎樣通過(guò) Java 程序來(lái)判斷 JVM 是 32 位 還是 64 位?
22)32 位 JVM 和 64 位 JVM 的最大堆內(nèi)存分別是多數(shù)?
23)JRE、JDK、JVM 及 JIT 之間有什么不同?
五、JVM 底層面試題及答案
24)你能保證 GC 執(zhí)行嗎?
25)怎么獲取 Java 程序使用的內(nèi)存?堆使用的百分比?
26)Java 中堆和棧有什么區(qū)別?
即將畢業(yè)的小伙伴們可以參考以上內(nèi)容,把以上問(wèn)題答案可以整理記憶一下,如果在面試過(guò)程中遇到了,有備而來(lái)自然就胸有成竹;如果是還沒(méi)有來(lái)到新華,但對(duì)這門技術(shù)和軟件開發(fā)工程師這個(gè)崗位感興趣的小伙伴,春已暖、花已開,可以實(shí)地來(lái)石家莊新華咨詢一下。
來(lái)源:CSDN