1. .java 源文件中的類定義
在單個(gè) .java 源文件中,可以包含多個(gè)類的定義,但其中只能有一個(gè)類被聲明為 public,且這個(gè) public 類的名稱必須與文件名完全一致。這是Java編譯器的一個(gè)基本規(guī)則,確保了類的封裝性和可訪問(wèn)性。
2. Java 中的 goto
Java 語(yǔ)言中確實(shí)保留了 goto 關(guān)鍵字,但出于避免程序結(jié)構(gòu)混亂的考慮,它并未在Java語(yǔ)言規(guī)范中被使用。這意味著你不能在Java程序中使用 goto 語(yǔ)句進(jìn)行跳轉(zhuǎn)。
3. & 和 && 的區(qū)別
& 和 && 都是邏輯與運(yùn)算符,但在使用上有顯著區(qū)別。當(dāng)用于布爾表達(dá)式時(shí),如果兩邊都為 true,則結(jié)果為 true;否則為 false。&& 具有短路功能,即如果*個(gè)表達(dá)式為 false,則不會(huì)評(píng)估第二個(gè)表達(dá)式,直接返回 false。而 & 還會(huì)評(píng)估第二個(gè)表達(dá)式(無(wú)論*個(gè)表達(dá)式的結(jié)果如何),并且當(dāng)操作數(shù)不是布爾類型時(shí),& 還可作為位運(yùn)算符進(jìn)行按位與操作。
4. 跳出多重嵌套循環(huán)
在Java中,若需跳出多重嵌套循環(huán),可通過(guò)在外層循環(huán)前定義標(biāo)簽(label),然后在內(nèi)層循環(huán)中使用帶標(biāo)簽的 break 語(yǔ)句來(lái)實(shí)現(xiàn)。這樣,即使深處多層嵌套中,也能直接跳出到指定的外層循環(huán)。
5. swi*h 語(yǔ)句的適用范圍
swi*h 語(yǔ)句中的表達(dá)式必須是整數(shù)類型(byte、short、char、int、Integer 包裝類型,它們都能隱式轉(zhuǎn)換為 int)或枚舉類型。由于 long 不能隱式轉(zhuǎn)換為 int,因此不能直接用于 swi*h 語(yǔ)句。從Java 7開(kāi)始,String 類型也被支持用于 swi*h 語(yǔ)句。
6. char 類型與中文漢字
char 類型在Java中用于存儲(chǔ)Unicode編碼的字符,由于Unicode編碼包括了多種語(yǔ)言的字符,包括漢字,因此 char 類型變量可以存儲(chǔ)漢字。但是,如果某個(gè)漢字未被Unicode編碼集包含,則無(wú)法存儲(chǔ)在 char 類型變量中。值得注意的是,Unicode編碼占用兩個(gè)字節(jié),因此 char 類型也占用兩個(gè)字節(jié)。
7. final 關(guān)鍵字的作用
final 關(guān)鍵字用于修飾變量時(shí),表示該變量的引用不可變,即一旦指向某個(gè)對(duì)象后,就不能再指向其他對(duì)象。但是,該變量所引用的對(duì)象內(nèi)部的狀態(tài)(即對(duì)象的成員變量)是可以改變的,除非對(duì)象本身也是不可變的。
8. 靜態(tài)變量與實(shí)例變量的區(qū)別
- 語(yǔ)法定義:靜態(tài)變量前需加
static關(guān)鍵字,而實(shí)例變量則不加。 - 程序運(yùn)行:實(shí)例變量屬于對(duì)象的一部分,必須在創(chuàng)建對(duì)象后才能被訪問(wèn)和修改;而靜態(tài)變量屬于類,在類加載時(shí)就已分配空間,無(wú)需創(chuàng)建對(duì)象即可訪問(wèn)。
9. 靜態(tài)*調(diào)用非靜態(tài)*
不可以直接從靜態(tài)*中調(diào)用非靜態(tài)*,因?yàn)榉庆o態(tài)*是與對(duì)象實(shí)例相關(guān)聯(lián)的,而靜態(tài)*調(diào)用時(shí)可能尚未創(chuàng)建任何對(duì)象實(shí)例。因此,在靜態(tài)*內(nèi)部調(diào)用非靜態(tài)*沒(méi)有明確的對(duì)象實(shí)例與之關(guān)聯(lián),這在邏輯上是無(wú)法成立的。
10. Java中的多態(tài)機(jī)制
Java中的多態(tài)性是通過(guò)*的重寫(xiě)和動(dòng)態(tài)綁定實(shí)現(xiàn)的。具體來(lái)說(shuō),就是父類或接口類型的引用變量可以指向子類或?qū)崿F(xiàn)類的實(shí)例對(duì)象,在運(yùn)行時(shí)根據(jù)對(duì)象的實(shí)際類型動(dòng)態(tài)綁定*調(diào)用,即調(diào)用的是內(nèi)存中正在運(yùn)行的對(duì)象的*,而非引用變量類型中定義的*。
11. 內(nèi)部類訪問(wèn)外部類成員
內(nèi)部類(無(wú)論是否是靜態(tài)的)都可以訪問(wèn)其外部類的成員。然而,如果是靜態(tài)內(nèi)部類,則只能訪問(wèn)外部類的靜態(tài)成員,因?yàn)殪o態(tài)內(nèi)部類不依賴于外部類的實(shí)例。非靜態(tài)內(nèi)部類則沒(méi)有這樣的限制,可以自由地訪問(wèn)外部類的所有成員(包括靜態(tài)和非靜態(tài))。