java面試真題分享57-60

058_靜態內部類和內部類有什麼區別

答:

靜態內部類不需要有指向外部類的引用。但非靜態內部類需要持有對外部類的引用。

靜態內部類可以有靜態成員(方法,屬性),而非靜態內部類則不能有靜態成員(方法,屬性)。

非靜態內部類能夠訪問外部類的靜態和非靜態成員。靜態內部類不能訪問外部類的非靜態成員,只能訪問外部類的靜態成員。


實例化方式不同:

1) 靜態內部類:不依賴於外部類的實例,直接實例化內部類對象

2) 非靜態內部類:通過外部類的對象實例生成內部類對象

059_反射的概念與作用

答:

反射的概念:

反射,一種計算機處理方式。是程序可以訪問、檢測和修改它本身狀態或行為的一種能力。

  • Java反射可以於運行時加載,探知和使用編譯期間完全未知的類.
  • 程序在運行狀態中, 可以動態加載一個只有名稱的類, 對於任意一個已經加載的類,都能夠知道這個類的所有屬性和方法; 對於任意一個對象,都能調用他的任意一個方法和屬性;
  • l加載完類之後, 在堆內存中會產生一個Class類型的對象(一個類只有一個Class對象), 這個對象包含了完整的類的結構信息,而且這個Class對象就像一面鏡子,透過這個鏡子看到類的結構,所以被稱之為:反射.
  • java反射使得我們可以在程序運行時動態加載一個類,動態獲取類的基本信息和定義的方法,構造函數,域等。
  • 除了檢閱類信息外,還可以動態創建類的實例,執行類實例的方法,獲取類實例的域值。反射使java這種靜態語言有了動態的特性。

反射的作用:

通過反射可以使程序代碼訪問裝載到JVM 中的類的內部信息

1) 獲取已裝載類的屬性信息

2) 獲取已裝載類的方法

3) 獲取已裝載類的構造方法信息


反射的優點:

增加程序的靈活性。

如struts中。請求的派發控制。

當請求來到時。struts通過查詢配置文件。找到該請求對應的action。已經方法。

然後通過反射實例化action。並調用響應method。

如果不適用反射,那麼你就只能寫死到代碼裡了。

所以說,一個靈活,一個不靈活。

很少情況下是非用反射不可的。大多數情況下反射是為了提高程序的靈活性。

因此一般框架中使用較多。因為框架要適用更多的情況。對靈活性要求較高。

060_提供Java存取數據庫能力的包是()

A.java.sql B. java.awt C.java.lang D.java.swing

答案:A

分析:

java.awt和javax.swing兩個包是圖形用戶界面編程所需要的包;java.lang包則提供了Java編程中用到的基礎類。


分享到:


相關文章: