JAVA基礎理解(五)

1.列出一些常見的運行時異常。

ArithmeticException (算數異常)

ClassCastException (類轉換異常)

IllegalArgumentException (非法參數異常)

IndexOutOfBoundsException (下標越界異常)

NullPointerException(空指針異常)

SecurityException (安全異常)

2.什麼是反射?

反射就是動態加載對象,並對對象進行剖析。在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法,這種動態獲取信息以及動態調用對象方法的功能稱爲Java的反射機制。

3.反射的作用

1)在運行時判斷一個對象的所屬的類

2)在運行時構造任意一個類的對象

3)在運行時判斷任意一個類所具有的成員變量和方法

4)在運行時調用任意一個對象的方法。

4.獲取class的三種方式

對象調用getClass() 方法來獲取;類名.class的方式得到‘;通過Class對象的forName() 靜態方法來獲取

5.break 和continue的卻別?

break和continue 都是用來控制循環的語句。

break用於完全結束一個循環,跳出循環體執行循環後面的語句。continue用於跳過本次循環,繼續下次循環。

6.運行時異常與一般異常有何異同

異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常

7.List、Map、Set三個接口存取元素時,各有什麼特點?

List以特定索引來存取元素,可以有重複元素。Set不能存放重複元素(用對象的equals方法來區分元素是否重複)。Map保存鍵值對(Key-value pair)映射,映射關係可以是一對一或多對一。

8.Collection 和 Collections 的區別

Collection 是集合類的上級接口,繼承與他的接口主要有Set 和 List.

Collections 是針對集合類的一個幫助類,它提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化的操作。

9.Error和Exception 有什麼區別

error 表示恢復不是不可能但是很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。

exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。

10.EJB包括(SessionBean,EntityBean),寫出他們的生命週期, 以及如何管理實務。

SessionBean:Stateless Session Bean 的生命週期是由容器決定的,當客戶機發出請求要建立一個Bean的實例,EJB容器不一定要創建一個新的Bean的實例供客戶機調用,而是隨便找一個現有的實例提供給客戶機。當客戶機第一次調用一個Stateful Session Bean時,容器必須立即在服務器中創建一個新的Bean實例,並關聯到客戶機上,以後此客戶機調用StatefulSession Session Bean 的方法時容器會把調用分派到與此客戶機相關聯的Bean實例。EntityBean:Entity Beans能存貨相對較長的事件,並且狀態是持續的。只要數據庫中的數據存在,Entity beans 就一直存活。而不是按照應用程序或者服務進程來說的。即使EJB容器崩潰了,Entity Beans生命週期能夠被容器或者Beans自己管理。

EJB通過以下技術管理實務:對象管理組織(OMG)的對象實務服務(OTS),Sun Microsystems 的Transaction Service(JTS)、Java Transaction API (JTA)、開發組(X/Open)的XA接口。

11.Comparable 和 Comparator 接口的區別

Comparable 接口只包含一個compareTo() 方法。這個方法可以給兩個對象排序。具體來說,它返回負數,0,正數來表明輸入對象小於,等於,大於已經存在的對象。

Comparator接口包含compare()和equals()兩個方法

12.switch能否作用在byte、long、string上?

switch可作用在char、byte、short、int

switch可作用於char、byte、short、int的包裝類上

switch不可作用於long、double、float、boolean,包括他們的包裝類

switch中可以是字符串類型,String(Java1.7以後纔可以作用在String上)

switch可以是枚舉類型(JDK1.5之後)

13.jdk中哪些類是不能繼承的?

不能繼承的是類是哪些用final關鍵字修飾的類,一般比較基本的類型或防止擴展類無意間破壞了原來方法的實現的類型都應該是final的,在jdk中System,String,StringBuffer等都是基本類型

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

Set裏的元素是不能重複的,元素重複與否是使用equals()方法進行判斷的equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,爲的是當兩個分離的對象的內容和類型相配的話,返回真值。

15.JDK和JRE的區別是什麼?

Java運行時環境(JRE)是將要執行Java程序的Java虛擬機。它同時也包含了執行applet需要的瀏覽器插件。Java開發工具包(JDK)是完整的Java軟件開發包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java調試器),可以讓開發者開發、編譯、執行Java應用程序。

16.是否可以再static環境中訪問非static變量?

static變量在java中是屬於類的,他在所有的實例中值是一樣的。當類被Java虛擬機載入的時候,會對static變量進行初始化,如果你的代碼嘗試不用實例來訪問非static的變量,編譯器會報錯,因爲這些變量還沒有被創建出來,還沒有跟任何實例關聯上。

17.Java支持多繼承嘛?

不支持,Java不支持多繼承。每個類都只能繼承一個類,但是可以實現多個接口。內部類在一定程度上也解決了多繼承問題。

18.什麼事迭代器(iterator)

Iterator 接口提供了很多對集合元素進行迭代的方法。每一個集合類都包含了可以返回迭代器實例的迭代方法。迭代器可以在迭代的過程中刪除底層集合的元素。

克隆(cloning)或者是序列化(seriablization)的語義和含義是根據的實現相關的。因此,應該由集合類的具體實現來決定如何被克隆或者是序列化。

19.Iterator 和 ListIterator的區別是什麼?

下面列出了他們的區別:

Iterator可用來遍歷Set和List集合,但是ListIterator只能用來遍歷List。

Iterator對集合只能是前向遍歷,ListIterator既可以鑲嵌也可以向後遍歷。

ListIterator實現了Iterator接口,幷包含其他的功能。比如:增加元素,替換元素。獲取前一個和後一個元素的索引,等等。

20、Enumeration接口和Iterator接口的區別有哪些?

Enumeration速度是Iterator的2倍,同時佔用更少的內存。但是,Iterator遠遠比Enumeration安全,因爲其他線程不能夠修改正在被iterator遍歷的集合裏面的對象。同時,Iterator允許調用者刪除底層集合裏面,這對Enumeration來說是不可能的。

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