1、String是最基本的數(shù)據(jù)類型嗎?
答:NO。Java一共又8個基礎(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》一書的附錄中給出了一個Java關(guān)鍵字列表,其中有g(shù)oto和const,但是這兩個是目前無法使用的關(guān)鍵字,因此有些地方將其稱之為保留字,其實(shí)保留字這個詞應(yīng)該有更廣泛的意義,因?yàn)槭煜語言的程序員都知道,在系統(tǒng)類庫中使用過的有特殊意義的單詞或單詞的組合都被視為保留字)
-----------------------------------------------------------------------------------------------------------------------------------------
3、&和&&的區(qū)別?
答:&運(yùn)算符有兩種用法:(1)按位與;(2)邏輯與。&&運(yùn)算符是短路與運(yùn)算。邏輯與跟短路與的差別是非常巨大的,雖然二者都要求運(yùn)算符左右兩端的布爾值都是true整個表達(dá)式的值才是true。&&之所以稱為短路運(yùn)算是因?yàn)?,如?amp;&左邊的表達(dá)式的值是false,右邊的表達(dá)式會被直接短路掉,不會進(jìn)行運(yùn)算。很多時候我們可能都需要用&&而不是&,例如在驗(yàn)證用戶登錄時判定用戶名不是null而且不是空字符串,應(yīng)當(dāng)寫為:username != null && !username.equals(""),二者的順序不能交換,更不能用&運(yùn)算符,因?yàn)榈谝粋€條件如果不成立,根本不能進(jìn)行字符串的equals比較,否則會產(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修飾符修飾的變量,也稱為類變量,它屬于類,不屬于類的任何一個對象,一個類不管創(chuàng)建多少個對象,靜態(tài)變量在內(nèi)存中有且僅有一個拷貝;實(shí)例變量必須依存于某一實(shí)例,需要先創(chuàng)建對象然后通過對象才能訪問到它。靜態(tài)變量可以實(shí)現(xiàn)讓多個對象共享內(nèi)存。
-----------------------------------------------------------------------------------------------------------------------------------------
8、內(nèi)部類可以引用它的包含類(外部類)的成員嗎?有沒有什么限制?
答:一個內(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ā)