更新時間:2020-05-11 14:41:41 來源:動力節點 瀏覽2487次
什么是Java虛擬機?為什么Java被稱作是“平臺無關的編程語言”?
Java虛擬機是一個可以執行Java字節碼的虛擬機進程。Java源文件被編譯成能被Java虛擬
機執行的字節碼文件。
Java被設計成允許應用程序可以運行在任意的平臺,而不需要程序員為每一個平臺單獨重寫
或者是重新編譯。Java虛擬機讓這個變為可能,因為它知道底層硬件平臺的指令長度和其特性。
JDK和JRE的區別是什么?
Java運行時環境(JRE)是將要執行Java程序的Java虛擬機。它同時也包含了執行applet需要的瀏覽器插件。Java開發工具包(JDK)是完整的Java軟件開發包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java調試器),可以讓開發者開發、編譯、執行Java應用程序。
”static”關鍵字是什么意思?Java中是否可以覆蓋(override)一個private或者是static的方法?
“static”關鍵字表明一個成員變量或者是成員方法可以在沒有所屬的類的實例變量的情況下被訪問。
Java中static方法不能被覆蓋,因為方法覆蓋是基于運行時動態綁定的,而static方法是編譯時靜態綁定的。static方法跟類的任何實例都不相關,所以概念上不適用。private也是不支持覆蓋的,因為私有的成員外界是看不到的所以也就不存在覆蓋的問題。
是否可以在static環境中訪問非static變量?
static變量在Java中是屬于類的,它在所有的實例中的值是一樣的。當類被Java虛擬機載入的時候,會對static變量進行初始化。如果你的代碼嘗試不用實例來訪問非static的變量,編譯器會報錯,因為這些變量還沒有被創建出來,還沒有跟任何實例關聯上。
Java支持的數據類型有哪些?什么是自動拆裝箱?
Java語言支持的8中基本數據類型是:
自動裝箱是Java編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把int轉化成Integer,double轉化成double,等等。反之就是自動拆箱。
Java中的方法覆蓋(Overriding)和方法重載(Overloading)是什么意思?
重寫方法的規則:(方法重寫也稱為方法覆蓋)
父類的一個方法申明了一個檢查異常IOException,在重寫這個方法是就不能拋出Exception,只能拋出IOException的子類異常,可以拋出非檢查異常。
而重載的規則:
重寫與重載的區別在于:
重寫多態性起作用,對調用被重載過的方法可以大大減少代碼的輸入量,同一個方法名只要往里面傳遞不同的參數就可以擁有不同的功能或返回值。
用好重寫和重載可以設計一個結構清晰而簡潔的類,可以說重寫和重載在編寫代碼過程中的作用非同一般.
Java中,什么是構造函數?什么是構造函數重載?什么是復制構造函數?
當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提
供構造函數的情況下,Java編譯器會為這個類創建一個默認的構造函數。
Java中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。Java不支持像C++中那樣的復制構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java不會創建默認的復制構造函數。
Java支持多繼承么?支持多實現嗎?
不支持,Java不支持多繼承。每個類都只能繼承一個類,但是可以實現多個接口。
接口可以繼承接口嗎?如果可以繼承請列舉一個案例?
可以,List繼承Collection
接口和抽象類的區別是什么?接口和抽象類有什么區別你選擇使用接口和抽象類的依據是什么?
接口和抽象類的概念不一樣。接口是對動作的抽象,抽象類是對根源的抽象。
抽象類表示的是,這個對象是什么。接口表示的是,這個對象能做什么。比如,蘇格蘭折耳貓,布偶貓,這兩個類(如果是類的話„„),他們的抽象類是貓。說明,他們都是貓。貓可以吃東西,耗子也可以吃東西,你可以把“吃東西”定義成一個接口,然后讓這些類去實現它.所以,在高級語言上,一個類只能繼承一個類(抽象類)(正如貓不可能同時是生物和非生物),但是可以實現多個接口(吃飯接口、走路接口)。
第一點.接口是抽象類的變體,接口中所有的方法都是抽象的。而抽象類是聲明方法的存在而不去實現它的類。
第二點.接口可以多繼承,抽象類不行
第三點.接口定義方法,不能實現,而抽象類可以實現部分方法。
第四點.接口中基本數據類型為static而抽類象不是的。
第五點.Java接口中聲明的變量默認都是final的。抽象類可以包含非final的變量。
第六點.Java接口中的成員函數默認是public的。抽象類的成員函數可以是private,protected或者是public。
當你關注一個事物的本質的時候,用抽象類;當你關注一個操作的時候,用接口。
抽象類的功能要遠超過接口,但是,定義抽象類的代價高。因為高級語言來說(從實際設計上來說也是)每個類只能繼承一個類。在這個類中,你必須繼承或編寫出其所有子類的
所有共性。雖然接口在功能上會弱化許多,但是它只是針對一個動作的描述。而且你可以在一個類中同時實現多個接口。在設計階段會降低難度的。接口是絕對抽象的,不可以被實例化。抽象類也不可以被實例化
以上就是動力節點java培訓機構的小編針對“2020年互聯網經典Java常見面試題目”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習