1. .java
源文件中的類(lèi)定義
在單個(gè) .java
源文件中,可以包含多個(gè)類(lèi)的定義,但其中只能有一個(gè)類(lèi)被聲明為 public
,且這個(gè) public
類(lèi)的名稱(chēng)必須與文件名完全一致。這是Java編譯器的一個(gè)基本規(guī)則,確保了類(lèi)的封裝性和可訪問(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ù)不是布爾類(lèi)型時(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ù)類(lèi)型(byte
、short
、char
、int
、Integer
包裝類(lèi)型,它們都能隱式轉(zhuǎn)換為 int
)或枚舉類(lèi)型。由于 long
不能隱式轉(zhuǎn)換為 int
,因此不能直接用于 swi*h
語(yǔ)句。從Java 7開(kāi)始,String
類(lèi)型也被支持用于 swi*h
語(yǔ)句。
6. char
類(lèi)型與中文漢字
char
類(lèi)型在Java中用于存儲(chǔ)Unicode編碼的字符,由于Unicode編碼包括了多種語(yǔ)言的字符,包括漢字,因此 char
類(lèi)型變量可以存儲(chǔ)漢字。但是,如果某個(gè)漢字未被Unicode編碼集包含,則無(wú)法存儲(chǔ)在 char
類(lèi)型變量中。值得注意的是,Unicode編碼占用兩個(gè)字節(jié),因此 char
類(lèi)型也占用兩個(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)變量屬于類(lèi),在類(lè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ō),就是父類(lèi)或接口類(lèi)型的引用變量可以指向子類(lèi)或?qū)崿F(xiàn)類(lèi)的實(shí)例對(duì)象,在運(yùn)行時(shí)根據(jù)對(duì)象的實(shí)際類(lèi)型動(dòng)態(tài)綁定*調(diào)用,即調(diào)用的是內(nèi)存中正在運(yùn)行的對(duì)象的*,而非引用變量類(lèi)型中定義的*。
11. 內(nèi)部類(lèi)訪問(wèn)外部類(lèi)成員
內(nèi)部類(lèi)(無(wú)論是否是靜態(tài)的)都可以訪問(wèn)其外部類(lèi)的成員。然而,如果是靜態(tài)內(nèi)部類(lèi),則只能訪問(wèn)外部類(lèi)的靜態(tài)成員,因?yàn)殪o態(tài)內(nèi)部類(lèi)不依賴(lài)于外部類(lèi)的實(shí)例。非靜態(tài)內(nèi)部類(lèi)則沒(méi)有這樣的限制,可以自由地訪問(wèn)外部類(lèi)的所有成員(包括靜態(tài)和非靜態(tài))。