一、選擇題
1、存取修飾詞作用範圍從大到小是()
A. private-default-protected-public
B.public-default-protected-private
C,private-protected-default-public
D,public-protected-default-private
2、以下()不是Object類的方法。
A.clone() B.finalize() C.toString() D.hasNext()
3、在Java中,以下()介面以鍵-值的方式對儲存物件。
A. java.util.Collection
B.java.util.Map
C.java.util.List
D.java.util.Set
4、指出下列程式啟動並執行結果是()
public class Example {String str = new String("good");char[] ch = {'a','b','c'};public static void main(String[] args) {Example ex = new Example();ex.change(ex.str, ex.ch);System.out.print(ex.str + " and ");System.out.print(ex.ch);}public void change(String str,char ch[]){str = "test ok";ch[0] = 'g';}}A. good and abc
B. good and gbc
C. test ok and abc
D. test ok and gbc
二、填空題
5、Java基礎資料型別 (Elementary Data Type)包括____________________。
解答:byte、short、int、long、char、boolean、float、double
6、Math.round(11.5)等於______;Math.round(-11.5)等於_______。
解答:採用四捨五入計算,11.5的四捨五入為12,-11.5的四捨五入為-11
7、程式String str1 = "hello"; String str2 = "he"+new String("llo");System.out.println(str1==str2)的結果是______。
解答:false
8、字串分為兩大類,一類是字串常量,使用______類的對象表示;另一類是字串變數,使用_______類的對象表示。
解答:常量用String,變數用StringBuffer(安全執行緒)或StringBuiler(非安全執行緒)
三、問答題
9、介面與抽象類別的區別是什麼。
解答:1、介面的所有方法都是抽象的,抽象類別可以包含具體方法
2、介面的所有方法和屬性都是public,抽象類別允許私人
3、介面的實現中必須實現所有方法,而抽象類別的繼承者中,可以實現,也可以不實現
4、實現多個介面類似於實現多重繼承,但是抽象類別只能實現單繼承
10、利用遞迴方法求5。
解答:
public class Test{public static void main(String[] args){System.out.println(JC(5));}public static int JC(int n){if( n== 0 || n== 1)return 1;if( n > 1)return n*JC(n-1);return 0;}}
11、編寫多線程代碼有幾種實現方法。請用代碼分別舉例說明。
解答:兩種:繼承Thread類和實現Runnable介面。
class MyThread1 extends Thread{public void run(){//do Stuff}}class MyThread2 implements Runnable{public void run(){//do Stuff}}
12、編程題:寫一個觀察者模式(先畫類圖,再用代碼實現)。
解答:(下圖及代碼均來源於網路,使用請註明出處)觀察者模式的類圖:
代碼實現:
//抽象主題public interface Subject{public void attach(Observer observer);public void detach(Observer observer);void notifyObservers();}//具體主題public class ConcreteSubject implements Subject{public void attach(Observer observer){observers.add(observer);}public void detach(Observer observer){observers.remove(observer);}public void notifyObservers(){for(Observer observer:observers){}}private List<Observer> observers = new ArrayList<Observer>();}//抽象觀察者public interface Observer{void update();}//具體觀察者public class ConcreteObserver implements Observer{public void update(){// doUpdate}}
四、選作題
一個由10億條記錄的文字檔中,已按照關鍵字排序儲存,設計演算法,客戶以快速的從檔案中尋找指定關鍵字的記錄。