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編程中用到的基礎類。
閱讀更多 Java淺析 的文章