App下載

2021版JAVA十大面試題及答案

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

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

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

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

  2、Java有沒有goto?

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

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

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

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

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

  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屬性得到的,這一點容易和Java混淆。

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

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

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

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

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

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

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

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

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

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

  9、Java 中的final關鍵字有哪些用法?

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

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

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

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

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

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

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

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

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

  相關閱讀推薦:

  java web開發(fā)你需要學習哪些內容?

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

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


0 人點贊