第十二週測試總結分析

一、下面代碼中共有()個線程?數據庫

public class ThreadTest {

    public static void main(String args[]){

        MyThread myThread =new MyThread();

        Thread t1=new Thread(myThread);

        Thread t2=new Thread(myThread);

        t1.start();

        t2.start();

    }

}

class MyThread extends Thread {

    ...

}

A .1
B .2
C .3
D .4
答案:C
解析:除了t1,t2, 不要忘了main所在的主線程。編程

二、Java中,能夠繼承( )類定義線程
A .Runnable
B .Thread
C .Future
D .Executor
答案:B安全

三、若是有如下代碼段:服務器

Thread thread = new Thread(new ________________() {

    public void run() {...} 

});

空白部分指定哪些類型能夠經過編譯?
A .Runnable
B .Thread
C .Future
D .Executor
答案:AB
解析:查API文檔,Thread 也實現了 Runnable 接口。網絡

四、下列哪一個敘述是錯誤的?
A .線程新建後,不調用start方法也有機會得到CPU資源
B .若是兩個線程須要調用同一個同步方法,那麼一個線程調用該同步方法時,另外一個線程必須等待。
C .目標對象中的run方法可能不啓動屢次
D .默認狀況下,全部線程的優先級都是5級。
答案:Aide

五、進程和程序的一個本質區別是
A .前者爲動態的,後者爲靜態的。
B .前者存儲在內存,後者存儲在外存。
C .前者在一個文件中,後者在多個文件中。
D .前者分時使用CPU,後者獨佔CPU。
答案:A線程

六、下列關於線程狀態與生命週期的說法,錯誤的是
A .在線程沒有結束run()方法以前,不要讓線程再調用start()方法,不然將發生IllegalThreadStateException異常。
B .run()方法負責通知JVM有新的線程等候切換。
C .執行sleep()結束後,該線程進入運行狀態,獲得CPU的使用權。
D .進入阻塞狀態時,線程不能進入排隊隊列。
答案:BC
解析:B項:應爲start()方法。C項:執行sleep結束後,線程從新進到線程隊列中排隊等待CPU資源。code

七、下列關於守護線程的說法,正確的是
A .thread.setDaemon(true)必須在thread.start()以前設置,不然會報IllegalThreadStateException異常。
B .若是用戶線程已經所有退出運行,只剩下守護線程存在,那麼虛擬機也就退出了。
C .將線程轉換爲守護線程能夠經過調用Thread對象的setDaemon(true)方法來實現。
D .守護線程應該永遠不去訪問固有資源,如文件、數據庫,由於它會在任什麼時候候甚至在一個操做的中間發生中斷。
答案:ABCDorm

八、下列關於setPriority方法的說法,錯誤的是
A .該方法更改線程的優先級。
B .該方法傳入的參數爲,要爲線程設定的優先級。
C .該方法首先調用線程的 checkAccess 方法,且不帶任何參數。這可能拋出IllegalArgumentException異常。
D .若是優先級不在MIN_PRIORITY到MAX_PRIORITY範圍內,則拋出IllegalArgumentException異常。
答案:C
解析:查詢API。對象

九、如下代碼中有兩個線程:

public class E { 

   public static void main(String args[]) { 

       Target target =new Target();

       Thread thread =new Thread(target);

       target.run();

       for(int i= 0;i<=10;i++) {

         System.out.println("yes");

         try{  Thread.sleep(1000);

         }

         catch(InterruptedException exp){}

      }

    }

}

class Target implements Runnable{

    public void run() {

       for(int i= 0;i<=10;i++) {

         System.out.println("ok");

         try{

              Thread.sleep(1000);

         }

         catch(InterruptedException exp){}

       }

    }

}

A .true
B .false
答案:B
解析:該程序只有一個主線程,thread線程並無啓動。

十、不能夠在非同步方法中使用wait()、notify()、notifyAll()。
A .true
B .false
答案:A
解析:課本P375.

十一、域名解析服務器(ARP)負責將域名轉化爲IP地址,從而與主機鏈接。
A .true
B .false
答案:B
解析:域名解析服務器是DNS。

十二、一個URL對象一般包含最基本的三部分信息:協議、地址和端口號。
A .true
B .false
答案:B
解析:協議、地址和資源。

1三、下列說法錯誤的是
A .IP地址標識Internet上的計算機,端口號標識服務器上的進程。
B .端口號爲1-65535之間的整數。
C .安全Shell(SSH)服務佔用端口21,萬維網(WWW)服務的超文本傳輸協議(HTTP)佔用端口80。
D .0-1023端口被預先定義的服務通訊佔用。
答案:C
解析:SSH服務佔用端口22。

1四、ServerSocket的構造方法public ServerSocket()建立非綁定服務器套接字。若是打開套接字時發生IO錯誤,則拋出IOException異常。
A .true
B .false
答案:A
解析:查詢API。

1五、下列關於TCP和UDP的說法,正確的是
A .TCP面向鏈接;UDP是無鏈接的,即發送數據以前不須要創建鏈接。
B .經過TCP鏈接傳送的數據,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付。
C .UDP和TCP都屬於網絡層協議。
D .UDP沒有擁塞控制,所以網絡出現擁塞不會使源主機的發送速率下降。
答案:ABD
解析:C項:UDP和TCP都屬於傳輸層協議。

1六、下列關於ServerSocket類的說法正確的是
A .accept()方法在鏈接傳入以前一直阻塞。返回值爲boolean類型。
B .public String toString()方法做爲 String 返回此套接字的實現地址和實現端口。
C .setSoTimeout(int timeout) 經過指定超時值啓用/禁用 SO_TIMEOUT,以秒爲單位。
D .public boolean isBound()返回 ServerSocket 的綁定狀態。若是將 ServerSocket 成功地綁定到一個地址,則返回 true。
答案:BD
解析:查詢API關於ServerSocket類的介紹。A項返回值類型錯誤。C項單位爲毫秒。

1七、如下可以支持TCP/IP鏈接的類是
A .InetAddress
B .Packet
C .Socket
D .ServerSocket
答案:CD

1八、構成World Wide Web基礎的關鍵協議是http協議。
A .true
B .false
答案:A

1九、爲了獲取遠程主機的文件等內容,當建立URL對象後,須要使用哪一個方法獲取信息?
A .getPort
B .getHost
C .openStream()
D .openConnection()
答案:C

20、使用流式套接字編程時,爲了向對方發送數據,則須要使用哪一個方法?
A .getInetAddress()
B .getLocalPort()
C .getOutputStream()
D .getInputStream()
答案:C

2一、當找不到客戶的服務器地址時會拋出
A .IOException
B .UnknownHostException
C .SocketException
D .MalformedURLException
答案:B

2二、使用UDP套接字通訊時,哪一個方法用於接收數據? A .read() B .receive() C .accept() D .listen() 答案:B (說明:P是書上頁碼,詳情請看書)

相關文章
相關標籤/搜索