1. 程式人生 > >Java筆試題(一)

Java筆試題(一)

1.關於抽象類與最終類,下列說法錯誤的是?
 A. 抽象類能被繼承,最終類只能被例項化
 B. 抽象類和最終類都可以被宣告使用
 C. 抽象類中可以沒有抽象方法,最終類中可以沒有最終方法
 D. 抽象類和最終類被繼承時,方法可以被子類覆蓋
 
答案:D
解析:
抽象類和最終類都可以被宣告使用,這裡只是說“宣告”,並沒有說“例項化”;如果只是宣告是可以的,最常見的使用方式就是:
1.父類引用指向子類物件;
2. 介面型別的引用指向該介面的實現類的物件;

以上兩種使用方式也就是所謂的“向上轉型”。


2.下列關於管道(Pipe)通訊的敘述中,正確的是()?


A.程序對管道進行讀操作和寫操作都可能被阻塞
B.一個管道只能有一個程序或一個寫程序對其操作
C.一個管道可實現雙向資料傳輸
D.管道的容量僅受磁碟容量大小限制

答案:A

解析:

A.正確,因為管道為空,讀操作會被阻塞;管道滿了,寫操作會被阻塞。
B.可以有多個程序對其讀;也可以有多個程序寫,只不過不能同時寫。並且題目沒有說“同時”,B不對。
C.匿名管道只能單向;命名管道可以雙向;所以C過於絕對。
D.管道是記憶體中的,所以D不對。

 

3.關於以下application,說法正確是什麼?

public class Test {
    static int x=10;
    static {x+=5;}
    public static void main(String[] args)  //4
        {
        System.out.println("x="+x);
    }
    static{x/=3;};
}  //9

A.4行與9行不能通過編譯,因為缺少方法名和返回型別
B.編譯通過,執行結果是:x=5
C.編譯通過,執行結果是:x=3
D.9行不能通過編譯,因為只能有一個靜態初始化器

答案:B

class A{
    static {
        System.out.println("父類靜態程式碼塊");
    }
    public A(){
        System.out.println("父類構造方法");
    }
    {
        System.out.println("父類初始化塊");
    }
}
public class B extends A{
    static{
        System.out.println("子類靜態程式碼塊");
    }
    public B(){
        System.out.println("子類構造方法");
    }
    {
        System.out.println("子類初始化塊");
    }
    public static void main(String[] args){
        new B();
    }
}

類載入時初始化順序如下:
父類靜態程式碼塊 —> 子類靜態程式碼塊 —> 父類普通程式碼塊 —> 父類構造方法 —> 子類程式碼塊 —> 子類構造方法;

 

4.拋InterruptedException的代表方法有:
java.lang.Object 類的 wait 方法 
java.lang.Thread 類的 sleep 方法
java.lang.Thread 類的 join 方法

 

5.JSP內建物件有:

1.request物件
    客戶端的請求資訊被封裝在request物件中,通過它才能瞭解到客戶的需求,然後做出響應。它是HttpServletRequest類的例項。
2.response物件
    response物件包含了響應客戶請求的有關資訊,但在JSP中很少直接用到它。它是HttpServletResponse類的例項。
3.session物件
    session物件指的是客戶端與伺服器的一次會話,從客戶連到伺服器的一個WebApplication開始,直到客戶端與伺服器斷開連線為止。它是HttpSession類的例項.
4.out物件
    out物件是JspWriter類的例項,是向客戶端輸出內容常用的物件
5.page物件
    page物件就是指向當前JSP頁面本身,有點象類中的this指標,它是java.lang.Object類的例項
6.application物件
    application物件實現了使用者間資料的共享,可存放全域性變數。它開始於伺服器的啟動,直到伺服器的關閉,在此期間,此物件將一直存在;這樣在使用者的前後連線或不同使用者之間的連線中,可以對此物件的同一屬性進行操作;在任何地方對此物件屬性的操作,都將影響到其他使用者對此的訪問。伺服器的啟動和關閉決定了application物件的生命。它是ServletContext類的例項。
7.exception物件
    exception物件是一個例外物件,當一個頁面在執行過程中發生了例外,就產生這個物件。如果一個JSP頁面要應用此物件,就必須把isErrorPage設為true,否則無法編譯。他實際上是java.lang.Throwable的物件
8.pageContext物件
pageContext物件提供了對JSP頁面內所有的物件及名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當於頁面中所有功能的集大成者,它的本 類名也叫pageContext。
9.config物件
    config物件是在一個Servlet初始化時,JSP引擎向它傳遞資訊用的,此資訊包括Servlet初始化時所要用到的引數(通過屬性名和屬性值構成)以及伺服器的有關資訊(通過傳遞一個ServletContext物件)