天天看點

Java程式員經典面試題集大全(十二)

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基礎全套教程