56、反射的概念與作用
反射的概念:
反射,一種計算機處理方式。是程式可以通路、檢測和修改它本身狀态或行為的一種能力。
Java反射可以于運作時加載,探知和使用編譯期間完全未知的類.。
程式在運作狀态中, 可以動态加載一個隻有名稱的類, 對于任意一個已經加載的類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能調用他的任意一個方法和屬性;
加載完類之後, 在堆記憶體中會産生一個Class類型的對象(一個類隻有一個Class對象), 這個對象包含了完整的類的結構資訊,而且這個Class對象就像一面鏡子,透過這個鏡子看到類的結構,是以被稱之為:反射.
java反射使得我們可以在程式運作時動态加載一個類,動态擷取類的基本資訊和定義的方法,構造函數,域等。
除了檢閱類資訊外,還可以動态建立類的執行個體,執行類執行個體的方法,擷取類執行個體的域值。反射使java這種靜态語言有了動态的特性。
反射的作用:
通過反射可以使程式代碼通路裝載到JVM 中的類的内部資訊
1) 擷取已裝載類的屬性資訊
2) 擷取已裝載類的方法
3) 擷取已裝載類的構造方法資訊
反射的優點:
增加程式的靈活性。
如struts中。請求的派發控制。
當請求來到時。struts通過查詢配置檔案。找到該請求對應的action。已經方法。
然後通過反射執行個體化action。并調用響應method。
如果不使用反射,那麼你就隻能寫死到代碼裡了。
是以說,一個靈活,一個不靈活。
很少情況下是非用反射不可的。大多數情況下反射是為了提高程式的靈活性。是以一般架構中使用較多。因為架構要适用更多的情況。對靈活性要求較高。
57、提供Java存取資料庫能力的包是()
A、java.sql
B、java.awt
C、java.lang
D、java.swing
答案:A
分析:
java.awt和javax.swing兩個包是圖形使用者界面程式設計所需要的包;
java.lang包則提供了Java程式設計中用到的基礎類。
58、下列運算符合法的是()(多選)
A、&&
B、<>
C、if
D、=
答案:AD
分析:
- &&是邏輯運算符中的短路與;
- <>表示不等于,但是Java中不能這麼使用,應該是!=;
- if不是運算符;
- =是指派運算符。
59、執行如下程式代碼,c的值列印出來是()
public class Test1 {
public static void main(String[] args) {
int a = 0;
int c = 0;
do{
--c;
a = a - 1;
} while (a > 0);
System.out.println(c);
}
}
A、0
B、1
C、-1
D、死循環
答案:C
分析:
do-while循環的特點是先執行後判斷,是以代碼先執行--c操作,得到c為-1,之後執行a=a-1的操作,得到a為-1,然後判斷a是否大于0,判斷條件不成立,退出循環,輸出c為-1。
60、下列哪一種叙述是正确的()
A、abstract修飾符可修飾字段,方法和類
B、抽象方法的body部分必須用一對大括号{}包住
C、聲明抽象方法,大括号可有可無
D、聲明抽象方法不可寫出大括号
答案:D
分析:
- A、abstract隻能修飾方法和類,不能修飾字段;
- B、抽象方法不能有方法體,即沒有{};
- C、同B。
這些問題在視訊中都有講到,Java基礎不紮實的同學,再好好學一下哦
Java基礎全套教程