盤點那些經典的Java面試題,你會嗎?

對於很多初入編程行業的程序員來說,第一次面試編程工作時是最緊張最無助的,因為他們從來沒有面試過這類工作,不知道主考官會問什麼。那麼一般初級Java面試時會問哪些問題呢?

什麼是Java虛擬機?為什麼Java被稱作是“平臺無關的編程語言”?

Java虛擬機是一個可以執行Java字節碼的虛擬機進程。Java源文件被編譯成能被Java虛擬機執行的字節碼文件。

Java被設計成允許應用程序可以運行在任意的平臺,而不需要程序員為每一個平臺單獨重寫或者是重新編譯。Java虛擬機讓這個變為可能,因為它知道底層硬件平臺的指令長度和其他特性。

盤點那些經典的Java面試題,你會嗎?

說說&和&&的區別。

&和&&都可以用作邏輯與的運算符,表示邏輯與(and),當運算符兩邊的表達式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。

&&還具有短路的功能,即如果第一個表達式為false,則不再計算第二個表達式,例如,對於if(str != null&& !str.equals(“”))表達式,當str為null時,後面的表達式不會執行,所以不會出現NullPointerException如果將&&改為&,則會拋出NullPointerException異常。If(x==33 &++y>0) y會增長,If(x==33 && ++y>0)不會增長

&還可以用作位運算符,當&操作符兩邊的表達式不是boolean類型時,&表示按位與操作,我們通常使用0x0f來與一個整數進行&運算,來獲取該整數的最低4個bit位,例如,0x31 & 0x0f的結果為0x01。

備註:這道題先說兩者的共同點,再說出&&和&的特殊之處,並列舉一些經典的例子來表明自己理解透徹深入、實際經驗豐富。

在監視器(Monitor)內部,是如何做線程同步的?程序應該做哪種級別的同步?

監視器和鎖在Java虛擬機中是一塊使用的。監視器監視一塊同步代碼塊,確保一次只有一個線程執行同步代碼塊。每一個監視器都和一個對象引用相關聯。線程在獲取鎖之前不允許執行同步代碼。

盤點那些經典的Java面試題,你會嗎?

Java 中怎麼獲取一份線程 dump 文件?

在 Linux 下,你可以通過命令 kill -3 PID (Java 進程的進程 ID)來獲取 Java 應用的 dump 文件。在 Windows 下,你可以按下 Ctrl + Break 來獲取。這樣 JVM 就會將線程的 dump 文件打印到標準輸出或錯誤文件中,它可能打印在控制檯或者日誌文件中,具體位置依賴應用的配置。如果你使用Tomcat。

尚學堂立志解決中國教育不公平和低效率問題,幫助千千萬萬被傳統教育方式耽誤的人,傳授實用、前沿的知識,成就學員個人理想,為愛你的人和你愛的人創造美好的生活。尚學堂12大精英團隊+各類實戰項目,真正實現1+1>10的目標效果。幫助學員迅速成長,持久騰飛,成就學員“高富帥”人生。


分享到:


相關文章: