-
以下聲明合法的是:
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