App下載

2021版JAVA十大面試題及答案

猿友 2020-12-11 14:58:48 瀏覽數(shù) (3468)
反饋

  1、String是最基本的數(shù)據(jù)類型嗎?

  答:NO。Java一共又8個(gè)基礎(chǔ)的數(shù)據(jù)類型分別為:byte、short、int、long、float、double、char、boolean;除了基本類型(primitive type),其余的都是引用類型(reference type),Java 5以后引入的枚舉類型也算是一種比較特殊的引用類型。

-----------------------------------------------------------------------------------------------------------------------------------------

  2、Java有沒有g(shù)oto?

  答:沒有。(根據(jù)James Gosling(Java之父)編寫的《The Java Programming Language》一書的附錄中給出了一個(gè)Java關(guān)鍵字列表,其中有g(shù)oto和const,但是這兩個(gè)是目前無法使用的關(guān)鍵字,因此有些地方將其稱之為保留字,其實(shí)保留字這個(gè)詞應(yīng)該有更廣泛的意義,因?yàn)槭煜語言的程序員都知道,在系統(tǒng)類庫中使用過的有特殊意義的單詞或單詞的組合都被視為保留字)

-----------------------------------------------------------------------------------------------------------------------------------------

  3、&和&&的區(qū)別?

  答:&運(yùn)算符有兩種用法:(1)按位與;(2)邏輯與。&&運(yùn)算符是短路與運(yùn)算。邏輯與跟短路與的差別是非常巨大的,雖然二者都要求運(yùn)算符左右兩端的布爾值都是true整個(gè)表達(dá)式的值才是true。&&之所以稱為短路運(yùn)算是因?yàn)?,如?amp;&左邊的表達(dá)式的值是false,右邊的表達(dá)式會(huì)被直接短路掉,不會(huì)進(jìn)行運(yùn)算。很多時(shí)候我們可能都需要用&&而不是&,例如在驗(yàn)證用戶登錄時(shí)判定用戶名不是null而且不是空字符串,應(yīng)當(dāng)寫為:username != null && !username.equals(""),二者的順序不能交換,更不能用&運(yùn)算符,因?yàn)榈谝粋€(gè)條件如果不成立,根本不能進(jìn)行字符串的equals比較,否則會(huì)產(chǎn)生NullPointerException異常。注意:邏輯或運(yùn)算符(|)和短路或運(yùn)算符(||)的差別也是如此。

-----------------------------------------------------------------------------------------------------------------------------------------

  4、switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?

  答:在Java 5以前,switch(expr)中,expr只能是byte、short、char、int;從Java 5開始,Java中引入了枚舉類型,expr也可以是enum類型;從Java 7開始,expr還可以是字符串(String),但是長整型(long)在目前所有的版本中都是不可以的。

-----------------------------------------------------------------------------------------------------------------------------------------

  5、數(shù)組有沒有l(wèi)ength()方法?String有沒有l(wèi)ength()方法?

  答:數(shù)組沒有l(wèi)ength()方法,有l(wèi)ength的屬性。

  String有l(wèi)ength()方法。在JavaScript中,獲得字符串的長度是通過length屬性得到的,這一點(diǎn)容易和Java混淆。

-----------------------------------------------------------------------------------------------------------------------------------------

  6、構(gòu)造器(constructor)是否可被重寫(override)?

  答:構(gòu)造器不能被繼承,因此不能被重寫,但可以被重載。

-----------------------------------------------------------------------------------------------------------------------------------------

  7、闡述靜態(tài)變量和實(shí)例變量的區(qū)別。

  答:靜態(tài)變量是被static修飾符修飾的變量,也稱為類變量,它屬于類,不屬于類的任何一個(gè)對象,一個(gè)類不管創(chuàng)建多少個(gè)對象,靜態(tài)變量在內(nèi)存中有且僅有一個(gè)拷貝;實(shí)例變量必須依存于某一實(shí)例,需要先創(chuàng)建對象然后通過對象才能訪問到它。靜態(tài)變量可以實(shí)現(xiàn)讓多個(gè)對象共享內(nèi)存。

-----------------------------------------------------------------------------------------------------------------------------------------

  8、內(nèi)部類可以引用它的包含類(外部類)的成員嗎?有沒有什么限制?

  答:一個(gè)內(nèi)部類對象可以訪問創(chuàng)建它的外部類對象的成員,包括私有成員。

-----------------------------------------------------------------------------------------------------------------------------------------

  9、Java 中的final關(guān)鍵字有哪些用法?

  答:(1)修飾類:表示該類不能被繼承;

         (2)修飾方法:表示方法不能被重寫;

         (3)修飾變量:表示變量只能一次賦值以后值不能被修改(常量)。

-----------------------------------------------------------------------------------------------------------------------------------------

  10、數(shù)據(jù)類型之間的轉(zhuǎn)換

  如何將字符串轉(zhuǎn)換為基本數(shù)據(jù)類型?

  答:調(diào)用基本數(shù)據(jù)類型對應(yīng)的包裝類中的方法parseXXX(String)或valueOf(String)即可返回相應(yīng)基本數(shù)據(jù)類型。

  如何將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串?

  答:一種方法是將基本數(shù)據(jù)類型與空字符串("")連接(+)即可獲得其所對應(yīng)的字符串;另一種方法是調(diào)用String 類中的valueOf()方法返回相應(yīng)字符串。

  相關(guān)閱讀推薦:

  java web開發(fā)你需要學(xué)習(xí)哪些內(nèi)容?

  Java語言哪里好?為什么那么多人選擇Java后端開發(fā)

  javascript是什么語言?它是干什么的


0 人點(diǎn)贊