分享Java面試中的幾個重要基礎問題!

千鋒武漢發表於2021-11-26

在國內網際網路企業中,Java工程師的缺口是最大的,可見Java的受歡迎程度。Java需求量大,自然競爭力也就高,如果沒有足夠的優勢,很難在激烈的競爭中脫穎而出。根據學員們的面試反饋情況,小千整理了大家在Java面試中常遇到的幾個重要基礎問題,供大家參考。

分享Java面試中的幾個重要基礎問題!

1、Java是否會出現記憶體溢位?

記憶體溢位是指應用系統中存在無法回收的記憶體或使用的記憶體過多,最終使得程式執行要用到的記憶體大於虛擬機器能提供的最大記憶體。為了解決Java中記憶體溢位問題,我們首先必須瞭解Java是如何管理記憶體的,Java的記憶體管理就是物件的分配和釋放問題。引起記憶體溢位的原因有很多種,常見的有以下幾種:

①記憶體中載入的資料量過於龐大,如一次從資料庫取出過多資料;

②集合類中有對物件的引用,使用完後未清空,使得JVM不能回收;

③程式碼中存在死迴圈或迴圈產生過多重複的物件實體;

④使用的第三方軟體中的BUG;

⑤啟動引數記憶體值設定的過小;

2、說說JVM記憶體組成

Java把記憶體分兩種:一種是棧記憶體,另一種是堆記憶體。

①在函式中定義的基本型別變數和物件的引用變數都在函式的棧記憶體中分配;

②堆記憶體用來存放由 new建立的物件和陣列。

在函式(程式碼塊)中定義一個變數時, Java就在棧中為這個變數分配記憶體空間,當超過變數的作用域後, Java會自動釋放掉為該變數所分配的記憶體空間;在堆中分配的記憶體由 Java虛擬機器的自動垃圾回收器來管理。

3、”static”關鍵字是什麼意思?Java中是否可以覆蓋(override)一個private或者是static的方法?

“static”關鍵字表明一個成員變數或者是成員方法可以在沒有所屬的類的例項變數的情況下被訪問。

Java中static方法不能被覆蓋,因為方法覆蓋是基於執行時動態繫結的,而static方法是編譯時靜態繫結的。static方法跟類的任何例項都不相關,所以概念上不適用。

4、是否可以在static環境中訪問非static變數?

static變數在Java中是屬於類的,它在所有的例項中的值是一樣的。當類被Java虛擬機器載入的時候,會對static變數進行初始化。如果你的程式碼嘗試不用例項來訪問非static的變數,編譯器會報錯,因為這些變數還沒有被建立出來,還沒有跟任何例項關聯上。

5、JDK和JRE的區別是什麼?

JDK-Java Development Kit,Java開發包。JRE-Java Runtime Environment Java執行環境。

Java執行時環境(JRE)是將要執行Java程式的Java虛擬機器。它同時也包含了執行applet需要的瀏覽器外掛。Java開發工具包(JDK)是完整的Java軟體開發包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java偵錯程式),可以讓開發者開發、編譯、執行Java應用程式。

這幾個Java面試中的基礎問題還是很重要的,因為多數時候用人單位都會考量大家的基礎如何。希望能幫到大家!

本文來自千鋒教育,轉載請註明出處。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2844275/,如需轉載,請註明出處,否則將追究法律責任。

相關文章