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

來源:互聯網
上載者:User

標籤:border   equal   pac   protect   屬性   堆記憶體   top   儲存   枚舉   

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方法究竟有什麼區別

==操作符是用於兩個變數的值是否相等,也就是比較變數所對應記憶體中的數值是否相等。比較基礎資料型別 (Elementary Data Type)或兩個引用變數是否相等,應該用==操作符。

如果一個變數指向的資料是一個物件類型,那麼此時是涉及了兩個記憶體,對象本身佔用了一塊記憶體(堆記憶體),變數也佔用了一塊記憶體,存放堆記憶體的首地址。對於兩個參考型別變數用==比較,表示兩個變數是否指向同一塊堆記憶體,比較的是兩個變數儲存的地址是否相等。

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鐘基礎資料型別 (Elementary Data Type)之一。Java為每個基礎資料型別 (Elementary Data Type)都提供了封裝類,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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.