最常問的Java面試題,有Get嗎?
1. import java和javax有什麼區別
剛開始的時候JavaAPI所必需的包是java開頭的包,javax當時只是擴充套件API包來說使用。然而隨著時間的推移,javax逐漸的擴充套件成為Java API的組成部分。但是,將擴充套件從javax包移動到java包將是太麻煩了,最終會破壞一堆現有的程式碼。因此,最終決定javax包將成為標準API的一部分。
所以,實際上java和javax沒有區別。這都是一個名字。

2. 介面和抽象類的區別是什麼?
介面的方法預設是public,所有方法在介面中不能有實現,抽象類可以有非抽象的方法
介面中的例項變數預設是final型別的,而抽象類中則不一定
一個類可以實現多個介面,但最多隻能實現一個抽象類
一個類實現介面的話要實現介面的所有方法,而抽象類不一定
介面不能用new例項化,但可以宣告,但是必須引用一個實現該介面的物件 從設計層面來說,抽象是對類的抽象,是一種模板設計,介面是行為的抽象,是一種行為的規範。
3. 成員變數與區域性變數的區別有那些?
從語法形式上,看成員變數是屬於類的,而區域性變數是在方法中定義的變數或是方法的引數;成員變數可以被public,private,static等修飾符所修飾,而區域性變數不能被訪問控制修飾符及static所修飾;但是,成員變數和區域性變數都能被final所修飾;
從變數在記憶體中的儲存方式來看,成員變數是物件的一部分,而物件存在於堆記憶體,區域性變數存在於棧記憶體
從變數在記憶體中的生存時間上看,成員變數是物件的一部分,它隨著物件的建立而存在,而區域性變數隨著方法的呼叫而自動消失。
成員變數如果沒有被賦初值,則會自動以型別的預設值而賦值(一種情況例外被final修飾但沒有被static修飾的成員變數必須顯示地賦值);而區域性變數則不會自動賦值。
4. 建立一個物件用什麼運算子?物件實體與物件引用有何不同?
new運算子,new建立物件例項(物件例項在堆記憶體中),物件引用指向物件例項(物件引用存放在棧記憶體中)。一個物件引用可以指向0個或1個物件(一根繩子可以不繫氣球,也可以系一個氣球);一個物件可以有n個引用指向它(可以用n條繩子繫住一個氣球)。
5. 什麼是方法的返回值?返回值在類的方法裡的作用是什麼?
方法的返回值是指我們獲取到的某個方法體中的程式碼執行後產生的結果!(前提是該方法可能產生結果)。返回值的作用:接收出結果,使得它可以用於其他的操作!
6. 一個類的構造方法的作用是什麼?若一個類沒有宣告構造方法,改程式能正確執行嗎?為什麼?
主要作用是完成對類物件的初始化工作。可以執行。因為一個類即使沒有宣告構造方法也會有預設的不帶引數的構造方法。
7. 構造方法有哪些特性?
名字與類名相同;
沒有返回值,但不能用void宣告建構函式;
生成類的物件時自動執行,無需呼叫。
8. 靜態方法和例項方法有何不同?
在外部呼叫靜態方法時,可以使用"類名.方法名"的方式,也可以使用"物件名.方法名"的方式。而例項方法只有後面這種方式。也就是說,呼叫靜態方法可以無需建立物件。
靜態方法在訪問本類的成員時,只允許訪問靜態成員(即靜態成員變數和靜態方法),而不允許訪問例項成員變數和例項方法;例項方法則無此限制.
9. 物件的相等與指向他們的引用相等,兩者有什麼不同?
物件的相等 比的是記憶體中存放的內容是否相等而引用相等 比較的是他們指向的記憶體地址是否相等。
10. 在呼叫子類構造方法之前會先呼叫父類沒有引數的構造方法,其目的是?
幫助子類做初始化工作。
11. ==與equals(重要)
== : 它的作用是判斷兩個物件的地址是不是相等。即,判斷兩個物件是不是同一個物件。(基本資料型別==比較的是值,引用資料型別==比較的是記憶體地址)
equals() : 它的作用也是判斷兩個物件是否相等。但它一般有兩種使用情況:
情況1:類沒有覆蓋equals()方法。則通過equals()比較該類的兩個物件時,等價於通過“==”比較這兩個物件。
情況2:類覆蓋了equals()方法。一般,我們都覆蓋equals()方法來兩個物件的內容相等;若它們的內容相等,則返回true(即,認為這兩個物件相等)。
為了讓學習變得輕鬆、高效,今天給大家免費分享一套Java教學資源。幫助大家在成為Java架構師的道路上披荊斬棘。需要資料的歡迎加入學習交流群:9285,05736
