1. 程式人生 > >【JAVA】基礎知識_常見問題1

【JAVA】基礎知識_常見問題1

tab char 轉換 x11 exp 如果 static關鍵字 final關鍵字 數據

1、一個“.java”的源文件中是否可以包含多個類

當然可以包含多個類,但是用public修飾的類只能有一個,並且類的名字要與文件的名字一致。

2、&和&&有什麽區別

這個問題很多人理解的不是很透徹。

首先:&和&&都是邏輯與運算符,當運算符兩邊的表達式都為true時,整個運算結果為true,反之為false。但是&和&&也略有不同,&&為短路與,什麽意思哪,比如:if(null != str && “”.equals.(str)),當str是null時,就不會執行第二個條件。如果用&,還是會執行第二個條件。

其次:&還可以表示位運算符,當&兩邊的表達式不是boolean類型時,&表示按位與操作,0x111 & 0x01 結果為0x01,用這樣的方式來判斷一個數的奇偶性是不是不錯啊,當然這只是一個實例,還有別的用法,可根據實際情況而定。

3、switch語句能否作用在byte上,能否作用在long上,能否作用在String上

在switch(expr1)中,expr1只能是一個整數表達式或枚舉常量,整數表達式可以是int基本類型或Integer包裝類型,由於byte、short、char可以隱含裝換為int,所以這些類型以及這些類型的包裝類型也是可以的。顯然long、String類型都不符合switch的語法規定,並且不能被隱式轉換為int類型,因此不能用於switch語句中。

4、char類型變量中能否存儲一個中文漢

char類型變量是用來存儲Unicode編碼字符的,Unicode編碼字符集中包含了漢字,因此char類型變量當然可以用來存儲漢字。但是如果是特殊漢字,既沒有包含在Unicode編碼字符集中,那麽這個char就無法保存這個特殊漢字。

註意:Unicode編碼占用兩個字節,所以char類型變量也是占用兩個字節。

5、使用final關鍵字修飾一個變量時,時引用不能變還是還是引用的對象不能變

使用final關鍵字修飾一個變量時,是指引用變量不能變,引用變量所指向對象中的內容還是可以改變的。

6、“==”和equals方法究竟有什麽區別

==操作符是用於兩個變量的值是否相等,也就是比較變量所對應內存中的數值是否相等。比較基本數據類型或兩個引用變量是否相等,應該用==操作符。

如果一個變量指向的數據是一個對象類型,那麽此時是涉及了兩個內存,對象本身占用了一塊內存(堆內存),變量也占用了一塊內存,存放堆內存的首地址。對於兩個引用類型變量用==比較,表示兩個變量是否指向同一塊堆內存,比較的是兩個變量存儲的地址是否相等。

equals方法用於比較兩個真實獨立對象的內容是否相同,如下:

String a = new String(“abc”);

String b = new String(“abc”);

想要比較a和b中的字符串是否一致,就要用:a.equals(b)返回結果會是true;

此時如果用a==b來比較,那返回的結果就會是false,因為a和b是兩個不一樣的對象,地址是完全不一樣的。

7、靜態變量和實例變量有什麽區別

語法定義區別:靜態變前面要加static關鍵字,實例變量前不加。

程序運行區別:實例變量本質是屬於某個對象的屬性,必須創建的實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。靜態變量不屬於某個具體的實例對象,而是屬於類,所以也稱類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。

總之,實例變量必須創建對象後才可以通過這個對象來使用,而靜態變量則可以直接使用類名來引用。

8、一個static方法內部是否可以發出對非static方法的調用

不可以。

非static方法是與對象關聯在一起的,必須創建一個具體對象後,才可以在該對象上進行方法調用,而static方法調用時不需要創建對象,可以直接調用。當一個static方法內部發出對非static方法調用時,那這個非static方法到底關聯的是哪個對象那?不知道到,理論上走不通。因此一個static方法內部是不可以發出對非static方法的調用。

9、Integer與int的區別

int是Java提供的8鐘基本數據類型之一。Java為每個基本數據類型都提供了封裝類,Integer是Java為int提供的封裝類,int的默認值為0,Integer的默認值為null。

10、說說public、private、protected作用域以及不寫是的區別

具體作用域見下表。如果不加修飾符則表示friendly。

作用域

當前類

同一包

子孫類

其他包

public

OK

OK

OK

OK

protected

OK

OK

OK

NO

friendly

OK

OK

NO

NO

private

OK

NO

NO

NO

【JAVA】基礎知識_常見問題1