Java基礎知識一二

1、啓動一個線程是用run()還是start()?

啓動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味着它可以由JVM調度並執行。這並不意味着線程就會立即運行。run()方法可以產生必須退出的標誌來停止一個線程。

--------------------------------------------------------------------------------------------------------------------

2、給我一個你最常見到的runtimeexception。

ArithmeticException,ArrayStoreException, BufferOverflowException, BufferUnderflowException,CannotRedoException, CannotUndoException, ClassCastException, CMMException,ConcurrentModificationException, DOMException, EmptyStackException,IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException,IllegalStateException, ImagingOpException, IndexOutOfBoundsException,MissingResourceException, NegativeArraySizeException, NoSuchElementException,NullPointerException, ProfileDataException, ProviderException,RasterFormatException, SecurityException, SystemException,UndeclaredThrowableException, UnmodifiableSetException,UnsupportedOperationException

--------------------------------------------------------------------------------------------------------------------

3、接口是否可繼承接口? 抽象類是否可實現(implements)接口? 抽象類是否可繼承實體類(concreteclass)?

接口可以繼承接口。抽象類可以實現(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。

--------------------------------------------------------------------------------------------------------------------

4、List, Set, Map是否繼承自Collection接口?

List,Set是,Map不是

--------------------------------------------------------------------------------------------------------------------

5、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?

    都不能

--------------------------------------------------------------------------------------------------------------------

6、數組有沒有length()這個方法?String有沒有length()這個方法?

數組沒有length()這個方法,有length的屬性。String有有length()這個方法。

--------------------------------------------------------------------------------------------------------------------

7、Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==還是equals()?它們有何區別?

Set裏的元素是不能重複的,那麼用iterator()方法來區分重複與否。equals()是判讀兩個Set是否相等。

equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,爲的是當兩個分離的對象的內容和類型相配的話,返回真值。

--------------------------------------------------------------------------------------------------------------------

8、構造器Constructor是否可被override?

構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。

--------------------------------------------------------------------------------------------------------------------

9、是否可以繼承String類?

String類是final類故不可以繼承。

--------------------------------------------------------------------------------------------------------------------

10、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一個整數表達式。因此傳遞給switch 和 case 語句的參數應該是 int、 short、 char 或者 byte。long,string 都不能作用於swtich。

--------------------------------------------------------------------------------------------------------------------

11、try {}裏有一個return語句,那麼緊跟在這個try後的finally{}裏的code會不會被執行,什麼時候被執行,在return前還是後?

會執行,在return前執行。

--------------------------------------------------------------------------------------------------------------------

12、當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裏到底是值傳遞還是引用傳遞?

是值傳遞。Java 編程語言只有值傳遞參數。當一個對象實例作爲一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。

--------------------------------------------------------------------------------------------------------------------

13、當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?

不能,一個對象的一個synchronized方法只能由一個線程訪問。

--------------------------------------------------------------------------------------------------------------------

14、Java的接口和C++的虛類的相同和不同處。

由於Java不支持多繼承,而有可能某個類或對象要使用分別在幾個類或對象裏面的方法或屬性,現有的單繼承機制就不能滿足要求。與繼承相比,接口有更高的靈活性,因爲接口中沒有任何實現代碼。當一個類實現了接口以後,該類要實現接口裏面所有的方法和屬性,並且接口裏面的屬性在默認狀態下面都是public static,所有方法默認情況下是public.一個類可以實現多個接口。

--------------------------------------------------------------------------------------------------------------------

15、Java中的異常處理機制的簡單原理和應用。

當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示爲一個異常。違反語義規則包括2種情況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問null的對象時會引發NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,並自由選擇在何時用throw關鍵字引發異常。所有的異常都是java.lang.Thowable的子類。

--------------------------------------------------------------------------------------------------------------------

16、請說出你所知道的線程同步的方法。

wait():使一個線程處於等待狀態,並且釋放所持有的對象的lock。

sleep():使一個正在運行的線程處於睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常。

notify():喚醒一個處於等待狀態的線程,注意的是在調用此方法的時候,並不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先級。

notityAll():喚醒所有處入等待狀態的線程,注意並不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。

--------------------------------------------------------------------------------------------------------------------

17、你所知道的集合類都有哪些?主要方法?

最常用的集合類是 List 和 Map。 List 的具體實現包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合構建、存儲和操作任何類型對象的元素列表。 List 適用於按數值索引訪問元素的情形。

Map 提供了一個更通用的元素存儲方法。 Map 集合類用於存儲元素對(稱作"鍵"和"值"),其中每個鍵映射到一個值。

--------------------------------------------------------------------------------------------------------------------

18、char型變量中能不能存貯一箇中文漢字?爲什麼?

能夠定義成爲一箇中文的,因爲java中以unicode編碼,一個char佔16個字節,所以放一箇中文是沒問題的

--------------------------------------------------------------------------------------------------------------------

19、多線程有幾種實現方法,都是什麼?同步有幾種實現方法,都是什麼?

多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口

同步的實現方面有兩種,分別是synchronized,wait與notify

--------------------------------------------------------------------------------------------------------------------

20、簡述邏輯操作(&,|,^)與條件操作(&&,||)的區別。

區別主要答兩點:a.條件操作只能操作布爾型的,而邏輯操作不僅可以操作布爾型,而且可以操作數值型

b.邏輯操作不會產生短路

--------------------------------------------------------------------------------------------------------------------

21、一個".java"源文件中是否可以包括多個類(不是內部類)?有什麼限制?

可以。必須只有一個類名與文件名相同。

--------------------------------------------------------------------------------------------------------------------

本文來自CSDN博客,轉載請標明出處:

http://blog.csdn.net/Zengyangtech/archive/2010/11/21/6025680.aspx


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章