最常问的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
總結
以上是生活随笔為你收集整理的最常问的Java面试题,有Get吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看本机所有请求_【松勤教育】Fiddl
- 下一篇: 学习Java编程equals()和has