1. 程式人生 > >計算機二級Java複習2

計算機二級Java複習2

1.public class Text{ public int aMethod(){ static int i=0; i++; System.out.println(i); } public static void main(String args[ ]){ Test test = new Test(); test.aMethod(); } } 編譯失敗:static要獨立於方法體外不能修飾區域性變數,aMethod方法要麼有void要麼有return

2.程式除錯的任務是:診斷和改正程式中的錯誤

3.軟體測試的目的是:發現程式中的錯誤

4.public class Person{ static int arr[] = new int[10]; public static void main(String args[]){ System.out.println(arr[9]); } } 輸出:0 arr[]為整型陣列,分配地址後預設值為0,所以建立陣列時也是對每個陣列元素賦初值0

4.除零異常:ArithmeticException 陣列越界異常:ArrayIndexOutOfBoundsException

5.問題處理方案的正確而完整的描述稱為‘演算法、程式和流程圖’

6.程式測試分為靜態分析和動態測試。其中‘靜態分析’是指不執行程式,而只是對程式文字進行檢查,通過閱讀和討論,分析和發現程式中的錯誤。

  1. .dat檔案是純文字,沒有資料屬性結構方面的資訊。

  2. FileReader是字元流 BufferedReader是帶了緩衝的位元組流 fileInputStream是位元組流 ObjectInputStream是物件流

9.java.io包的File類是非流類 java.io包中的類可以處理不同型別的流,比如位元組流、字元流、物件流、非流類等 File類是一個重要的非流類,它是以一種系統無關的方式表示一個檔案物件的屬性。

10.nio包的新特點:為所有的原始型別提供(Buffer)快取支援。字符集編碼解碼解決方案。 channel:一個新的原始I/O抽象。支援鎖和記憶體對映檔案的檔案訪問介面。提供多路(non-bloking)非阻塞式的高伸縮性網路I/O

11.在網址上讀取html檔案InputStreamReader(讀取輸入流檔案)

12.資料庫設計種反映使用者對資料要求的模式是:外模式 外模式(使用者級),內模式(物理級),模式(概念級)

13.資料庫設計的四個階段:需求分析、概念設計、邏輯設計和‘物理設計’

14.ObjectOutputStream類的構造方法是ObjectOutputStream(OutputStreamOut) java中的二進位制流全部寫入到記憶體中。

15.位元組輸入流Reader,字元輸出流Writer,位元組輸入流InputStream,位元組輸出流OutputStream

16.在java的輸入輸出流中,資料從資料來源流向資料目的地,流的傳送是‘序列’的

1.實現多執行緒的倆種方式: a.繼承Thread,然後重寫它的run方法,將執行緒的邏輯放入其中 b.實現Runnable介面,並實現它的run方法

2.執行緒的優先順序可以在建立時設定,也可以通過getPriority()獲得優先順序,也可以通過setPriprity()設定

3.run()執行執行緒的方法

4.執行緒狀態轉換序列:新建,可執行,執行,阻塞,可執行。。。

5.壓棧執行緒和彈棧執行緒之間互動與同步(this.wait()) 用wait()和notify()可以實現執行緒的同步;當某執行緒需要在synchronized塊中等待共享資料狀態時呼叫wait方法,這樣執行緒等待並暫時釋放共享資料物件的鎖,其他執行緒可以獲得該物件的鎖並進入synchronized塊對共享進行操作。當其操作完後,只要呼叫notify()方法就可以通知正在等待的執行緒重新佔有鎖並執行。

6.java. lang. Thread類和java. lang. Runnable是建立執行緒的兩個方法,分別是實現Thread類和繼承Runnabe(介面,而ThreadGroup類是管理一組執行緒的類。而Serializable是序列化,將一個物件的狀態儲存起來,在適當的時候再獲得,它不支援執行緒。

7.一定使呼叫執行緒改變狀態的是’sleep()’ 該題考查執行緒的狀態轉換。由於notify()只是喚醒一個執行緒,但我們由不能確定具體喚醒的是哪一個執行緒,也許我們需要喚醒的執行緒不能夠被喚醒,所以執行緒不一定改變狀態,選項A錯誤;執行緒呼叫了yield()方法,意思是放棄當前獲得的CPU時間片,回到可執行狀態,這時與其他程序處於同等競爭狀態,OS有可能會接著又讓這個程序進入執行狀態,所以執行緒狀態不一定改變,選項B錯誤;isAlive()是判斷執行緒當前狀態是否處於Alive狀態,不改變執行緒狀態,所以選項D錯誤;呼叫的sleep()之後,執行緒則一定進入阻塞狀態,所以選項C正確。

8.如果要安全的終止一個執行緒t,可以採用的正確的方法:可以使用標誌flag,通過設定flag通知執行緒t結束。 有三種方法可以終止執行緒: a.使用退出標誌,使執行緒正常退出,也就是當run方法完成後執行緒終止。 b.使用stop強行終止執行緒(這個方法不推薦使用,因為stop和suspend,resume一樣,也可能發生不可預料的結果) c.使用interrupt方法中斷執行緒。suspend臨時掛起,yield謙讓,stop強行終止執行,yield當前程式停止執行而讓其執行緒執行suspend臨時掛起當前執行緒。

9.一個程式中單獨的、併發的執行緒對同一個物件進行訪問的程式碼段,稱為臨界區。在java語言中,臨界區可以是一個語句塊或是一個方法,並用synchronized關鍵字標識。

10.執行緒分為五個階段:新建狀態,可執行狀態,執行狀態,阻塞狀態,終止狀態

11.當使用Thread t=new Thread(r)建立一個執行緒時,表示式:r instanceof Thread的值是【false 】 解釋:考察instanceof的概念。instanceof是一個二元操作符,並不是java的保留關鍵字。它的作用是檢視左邊物件是否是右邊類的例項,返回boolean型別的資料。r不是Thread的例項,所以返回false

12.在java中,執行緒的模型就是一個cpu、程式程式碼和’資料‘的封裝體

13.java中,執行緒必須屬於一個程序,執行緒時程式執行中的一個‘執行流’。

14.執行緒由於呼叫sleep()方法進入阻塞狀態,當睡眠結束時,該執行緒將進入‘可執行’狀態(也叫就緒狀態)

15.建立一個執行緒並執行: public class Try extends Thread{ public static void main(String args[]){ Thread t = new try(); t.start(); } public void run(){ System.out.println(“Try”); } }

16.java中的’執行緒體‘是由java.lang.Thread類的run()方法定義的

17.thread thread1 = new SomeThreadClass();該語句僅僅只是建立了執行緒,並不馬上啟動,此時處於‘新建狀態’

18.java的執行緒排程時一種基於優先順序的搶’佔式排程’

1.類Panel預設的佈局管理器是:FlowLayout FlowLayout是applet和panel的預設佈局管理器 BorderLayout是windows,frame,dialog的預設佈局管理器 Frame是window類的直接子類 Frame物件顯示的效果是一個視窗 2.Swing中提供了JOptionPane類來實現 類似Windows平臺下的MessageBox功能 利用JOptionPane類中的各個static方法來生成各種標準的對話方塊,實現顯示出資訊、提出問題、警告、使用者輸入引數等功能。且這些對話方塊都是模式對話方塊。 3. MouseEvent是滑鼠事件 ActionEvent是元件事件(滑鼠點選選單時產生的事件) KeyEvent是鍵盤事件 WindowEvent是視窗事件 4. JMeun選單 JMeunBar選單欄 JMeunItem選單的子選項 5. Calendar日曆類提供日期和時間的表示,它以格里曆(即陽曆)來計算 6. Swing中表示程序條的是Javax.swing.JprogressBar 7. 佈局管理器是用來管理元件在容器中的位置的,常用的有FlowLayout,BorderLayout 8. 介面ActionListener中只有一個方法,這個方法名稱是actionPerformed

1.啟動applet程式時,首先呼叫的是init()方法,進行初始化 2.當瀏覽器重新返回Applet所在頁面時,將呼叫Applet類的方法是start(),關閉瀏覽器釋放Applet佔用的所有資源的方法是destory() 3.在html檔案的標誌中作為可選屬性的是Applet主類的路徑 4.Applet的主類要定義為Applet類或JApplet類的子類 Applet程式有兩種方法,一種是使用appletviewer,另一個是使用支援java的瀏覽器

1.線性表的鏈式儲存結構所需要的儲存空間一般要少於順序儲存結構 2.關於二叉樹結點