2.15測試復盤


  • 以下聲明合法的是:
    A. default String s
    B. public final static native int w()
    C. abstract double d
    D. abstract final double hyperholicCosine()

    解析:A. default不能修飾變量。B. native修飾方法,native修飾的方法簡單來說就是:一個Java方法調用了一個非Java代碼的接口。C. 普通變量不能用abstract修飾,abstract一般修飾方法和類。D. abstract與final不能共用,一個要繼承一個不能被繼承,矛盾。
    答案:B

  • 在一個基於分布式的游戲服務器系統中,不同的服務器之間,哪種通信方式是不可行的()?
    A. 管道
    B. 消息隊列
    C. 高速緩存數據庫
    D. 套接字

    解析:要求是對於不同的服務器之間的通信,是要求全雙工形式的,而管道只能是半雙工,雖然可以雙向,但是同一時間只能有一個方向傳輸
    答案:A

  • 下列不是Java關鍵字的是()
    A. abstract
    B. false
    C. native
    D. sizeof

    解析:
    1)48個關鍵字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。
    2)2個保留字(現在沒用以后可能用到作為關鍵字):goto、const。
    3)3個特殊直接量:true、false、null。

    答案:BD

  • 關於依賴注入,下列選項中說法錯誤的是()
    A. 依賴注入能夠獨立開發各組件,然后根據組件間關系進行組裝
    B. 依賴注入提供使用接口編程
    C. 依賴注入使組件之間相互依賴,相互制約
    D. 依賴注入指對象在使用時動態注入

    解析:依賴注入目的是減少組件之間的耦合度
    答案:C

  • 關於中間件特點的描述不正確的是()
    A. 中間件運行於客戶機/服務器的操作系統內核中,提高內核運行效率
    B. 中間件應支持標准的協議和接口
    C. 中間件可運行於多種硬件和操作系統平台上
    D. 跨越網絡,硬件,操作系統平台的應用或服務可通過中間件透明交互

    解析:中間件並不能提高內核的效率,一般只是負責網絡信息的分發處理。
    中間件特點的描述:
    1.中間件應支持標准的協議和接口
    2.中間件可運行於多種硬件和操作系統平台上
    3.跨越網絡,硬件,操作系統平台的應用或服務可通過中間件透明交互

    答案:A

  • 下面哪個行為被打斷不會導致InterruptedException:()?
    A. Thread.join
    B. Thread.sleep
    C. Object.wait
    D. CyclicBarrier.await
    E. Thread.suspend

    解析:API里面寫的:當線程在活動之前或活動期間處於正在等待、休眠或占用狀態且該線程被中斷時,拋出該異常。D.CyclicBarrier是一個屏障類,它的await方法可以簡單的理解為:等待多個線程同時到達之后才能繼續進行,在此之前它就是這些線程的屏障,線程不能繼續進行,而對於失敗的同步嘗試,CyclicBarrier 使用了一種要么全部要么全不 (all-or-none) 的破壞模式:如果因為中斷、失敗或者超時等原因,導致線程過早地離開了屏障點,那么在該屏障點等待的其他所有線程也將通過 BrokenBarrierException(如果它們幾乎同時被中斷,則用 interruptedException)以反常的方式離開。因此它被中斷也是可以拋出interruptedException的。E. 調用Suspend使線程掛起,暫停執行,故suspend不會拋出該異常。
    答案:E

  • What is the result of compling and executing the following fragment of code:

	Boolean flag = false;
	if (flag = true)
	{
	    System.out.println(“true”);
	}
	else
	{
	    System.out.println(“false”);
	}
	```
	A. The code fails to compile at the “if” statement.
	B. An exception is thrown at run-time at the “if” statement.
	C. The text“true” is displayed.
	D. The text“false”is displayed.
	E. Nothing is displayed.
	
	**解析:if的語句比較,除boolean外的其他類型都不能使用賦值語句,否則會提示無法轉成布爾值。**
	答案:C 
	
- 下列關於包(package)的描述,正確的是()
	A. 包(package)是Java中描述操作系統對多個源代碼文件組織的一種方式。
	B. import語句將所對應的Java源文件拷貝到此處執行。
	C. 包(package)是Eclipse組織Java項目特有的一種方式。
	D. 定義在同一個包(package)內的類可以不經過import而直接相互使用。

	**解析:1、為了更好地組織類,Java提供了包機制。包是類的容器,用於分隔類名空間。如果沒有指定包名,所有的示例都屬於一個默認的無名包。Java中的包一般均包含相關的類,java是跨平台的,所以java中的包和操作系統沒有任何關系,java的包是用來組織文件的一種虛擬文件系統。A錯
2、import語句並沒有將對應的java源文件拷貝到此處僅僅是引入,告訴編譯器有使用外部文件,編譯的時候要去讀取這個外部文件。B錯
3、Java提供的包機制與IDE沒有關系。C錯
4、定義在同一個包(package)內的類可以不經過import而直接相互使用。**
	答案:D

- 以下哪個I/O類可以附加或更新文件
	A. RandomAccessFile()
	B. OutputStream()
	C. DataOutputStream()
	D. None of the above

	**解析:**
	答案:A

- 以下代碼將打印出
```java
	public static void main (String[] args) { 
	    String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";
	    System.out.println(classFile);
	}
	```
	A. com. jd
	B. com/jd/MyClass.class
	C. ///////MyClass.class
	D. com.jd.MyClass

	**解析:由於replaceAll方法的第一個參數是一個正則表達式,而"."在正則表達式中表示任何字符,所以會把前面字符串的所有字符都替換成"/"。如果想替換的只是“.”的話,正則表達式那里就要寫成“\\.”或者是“[.]”。前者將“.”轉義為“.”這個具體字符,后者則匹配“[]”中的任意字符,“.”就代表具體字符“.”**
	答案:C
	
- 下列哪一項不是加載驅動程序的方法?
	A. 通過DriverManager.getConnection方法加載
	B. 調用方法 Class.forName
	C. 通過添加系統的jdbc.drivers屬性
	D. 通過registerDriver方法注冊
	
	**解析:DriverManager.getConnection方法返回一個Connection對象,這是加載驅動之后才能進行的。**
	答案:A

- 如何獲取ServletContext設置的參數值?
	A. context.getParameter()
	B. context.getInitParameter()
	C. context.getAttribute()
	D. context.getRequestDispatcher()

	**解析:
	getParameter()是獲取POST/GET傳遞的參數值;
	getInitParameter獲取Tomcat的server.xml中設置Context的初始化參數
	getAttribute()是獲取對象容器中的數據值;
	getRequestDispatcher是請求轉發。**
	答案:B

- 在Java語言中,下列關於字符集編碼(Character set encoding)和國際化(i18n)的問題,哪些是正確的?
	A. 每個中文字符占用2個字節,每個英文字符占用1個字節
	B. 假設數據庫中的字符是以GBK編碼的,那么顯示數據庫數據的網頁也必須是GBK編碼的。
	C. Java的char類型,通常以UTF-16 Big Endian的方式保存一個字符。
	D. 實現國際化應用常用的手段是利用ResourceBundle類

	**解析:
	A. Java一律采用Unicode編碼方式,每個字符無論中文還是英文字符都占用2個字節。
	B 也是不正確的,不同的編碼之間是可以轉換的,通常流程如下:將字符串S以其自身編碼方式分解為字節數組,再將字節數組以你想要輸出的編碼方式重新編碼為字符串。
例:String newUTF8Str = new String(oldGBKStr.getBytes("GBK"), "UTF8");
C 是正確的。Java虛擬機中通常使用UTF-16的方式保存一個字符
D 也是正確的。ResourceBundle能夠依據Local的不同,選擇性的讀取與Local對應后綴的properties文件,以達到國際化的目的。**
	答案:CD


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM