javase程序設計課後題答案

 ;第1章 Java概述

  1. 編譯java application源程序文件將產生相應的字節碼文件,這些字節碼文件別的擴展名爲.java
  2. 執行一個java程序fristapp的方法是運行java fristapp
  3. main()方法的返回類型是void
  4. 在java代碼中,public static void main方法的參數描述正確的是string args【】,string【】args
  5. 內存的回收程序負責釋放無用內存  √
  6. java體系主要分爲java ME,Java SE,JavaEE三大塊

 

 第2章 Java基礎

 

  1. Java語言中,下列標識符錯誤的是  40name  
  2. java變量中,如下不屬於引用類型的數據類型是字符型
  3. double d=5.3E12  ×
  4. C
  5. A
  6. for循環的通常形式爲;for(初值;終值;增量),如下對for循環的敘述,正確的是初值和增量都是賦值語句,終值是條件判斷語句
  7. 當輸入下面選項中3值時,將會輸出default
  8. 下面哪一種方法可以支持javadoc命令/**…*/
  9. 下面聲明一個string類型的數組正確的是string str[]
  10. 下面定義一個整型數組,不合法的是int[][]array=new int[][4];
  11. 給定代碼;。。。。。下面敘述正確的是輸出的結果爲:0
  12. java語言規定,標示符只能由字母,數字 美圓符$和下劃線租成,而且第一個字符不能是數字;java是區分大小寫的。
  13. 表達式1/2*3的計算結果是0;設x=2,則表達式(x++)/3的值是0
  14. 數組的長度能夠用其屬性length得到;建立一個數組對象可使new關鍵字建立

 

第3章 面向對象基礎

  1. 在java中引用對象變量和對象間有什麼關係?引用變量是指向對象的一個指針
  2. 對象是面向對象技術的核心所在,在面向對象程序設計中,對象是累的抽象 ×
  3. 構造方法什麼時候被調用?建立對象時
  4. A,B,D
  5. 在java語言中在包p1中包含包p2,類A直接隸屬於p1,類B直接隸屬於包p2.在類c中要使用類a的方法和類b的方法b,須要選擇import p1.*; import p1.p2,*;
  6. java中,訪問修飾符限制最高的是private

 

第4章 類之間的關係

  1. 在java中,下面關於類的描述正確的是一個父類能夠有多個子類
  2. 在java語言中,類worker是類person的子類,worker的構造方法中有一句「super()」,該語句是調用person的構造法法
  3. 下列final修飾符不容許父類被繼承。
  4. 在java中,在類中定義兩個或多個方法,方法名相同而參數不一樣,這稱爲方法重載
  5. Derived derived=new Base():×
  6. public  void  method_1(int e,int f)√

 

第5章 抽象類、接口和內部類

  1. 下列abstract修飾符用來定義抽象類
  2. final類不但能夠用來派生子類,也能夠用來建立final類的對象
  3. 有錯誤,Mine必須聲明成abstract的
  4. Throwable類是下面那兩個類的直接父類Error,Exception
  5. Object類是Throwable類的父類
  6. NullPointerException屬於非檢查型異常的類
  7. 用於方法聲明拋出異常類型的關鍵字是throws
  8. throws關鍵字用來代表一個方法可能拋出的各類異常
  9. 能單獨和finally語句一塊兒使用的快是try
  10. 可使用return關鍵詞跳出來一個try快而進入finally塊
  11. B,C,D
  12. 下列類在多重catch中同時使用時,Exception異常類應該最後列出

第6章 異常

 

第7章 泛型和集合

  1. D
  2. 下面不是繼承自Collection接口的是HashMap
  3. 下面用於建立動態數組的集合類是ArraryList
  4. 向ArraryList對象中添加一個元素的方法是 addObject o
  5. List myList=new ArrayList()√

 

第8章 流與文件

  1. 改變當前目錄,返回父目錄的名稱,刪除文件屬於File類的功能
  2. 當編譯上述代碼的的時候出現一個編譯錯誤
  3. 下列類中由InputStream類直接派生出的是ObjectInputStream
  4. void flush()方法不是InputStream的方法
  5. 下列InputStream類能夠做爲FilterInputStream的構造方法的參數

 

第9章  JDBC

 

  1. 如下代碼行的功能是MS-SQL服務器數據庫加載驅動程序
  2. 爲維護不一樣數據庫所建立的驅動器列表,使用JDBC-ODBC橋接
  3. C

 

第10章 Swing

  1. Swing組件位於javax.swing包中
  2. 下面流佈局佈局管理是居中放置組件,當同一行超出容器寬度後纔會重新行開始放置組件。
  3. 使用邊界佈局管理器時,中間區域會自動垂直調整大小,而不在水平方向上調整
  4. 利用邊界佈局,向容器中添加一個組件,其中容器用cont表示,組件用comp表示,書寫代碼的方式是cont.add(comp,BorderLayout.CENTER);
  5. 窗體和麪板容器默認佈局分別是邊界佈局,流佈局
  6. 下面不是容器組件的是JList
  7. 下面代碼中,設置容器的佈局 爲空的正確語句是setLayoutnull
  8. JButton的父類是AbstractButton
  9. 事件監聽接口中的方法的返回值是void
  10. 在java中,要處理Button類對象的事件,如下ActionListener是能夠處理這個事件的藉口。
  11. 要判斷關閉窗口的事件,應該添加窗口監聽器
  12. 「按鈕被單擊」
  13. 下面getSource()用於獲取事件源

 

第11章 Swing(2)

  1. 用於建立菜單項的類是JMenuItem
  2. 下面選項中,用於顯示確認對話框的方法是showConfirmDialog
  3. 下面JTree組件用於以層次結構顯示數據
  4. A
  5. A
  6. 用於文件打開或保存時顯示的對話框類是JFileChooser,該類中的showOpenDialog方法用於顯示一個文件打開對話框,showSaveDialog方法用於顯示一個文件保存對話框
  7. JColorChooser類是顏色選擇器

 

第12章 線程

  1. 下面Thread是線程類
  2. 要創建一個線程,能夠從下面Runnable接口繼承
  3. 下面讓線程休眠1分鐘正確的方法是sleep60000
  4. 列舉讓線程處於不運行的狀態的方法sleep(),wait(),yield()
  5. 線程同步的關鍵字synchronized

 

 

問答部分

第一章java

一、簡單列舉Java語言的特色?sql

答:(1)簡單性(2)面向對象性(3)分佈式(4)健壯性(5)跨平臺性(6)高性能(7)多線程(8)動態性數據庫

二、Java應用程序分爲幾類?各有什麼特色?編程

答:兩類:Applications(Java應用程序)和Applet(Java小程序)小程序

特色:Applications是指在計算機操做系統中運行的程序。使用Java建立應用程序與使用其餘任何計算機語言類似,這些應用程序能夠基於GUI或命令行界面。Applet是爲在Internet上工做才建立的Java小程序,經過支持Java的瀏覽器運行,Applet可使用任何Java開發工具建立,但必須被包含或嵌入到網頁中,當網頁顯示瀏覽器上後,Applet就被加載並執行。數組

三、面向對象的特徵有哪些方面,並分別簡要解釋。瀏覽器

答:(1)封裝:封裝是把過程和數據包圍起來,對數據的訪問只能經過已定義的界面。面向對象計算始於這個基本概念。安全

(2)繼承:繼承是一種聯結類的層次模型,而且容許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類能夠從現有的類中派生,這個過程稱爲類繼承。新類繼承了原始類的特性。派生類能夠從它的基類那裏繼承方法和實例變量,而且類能夠修改或增長新的方法使之更適合特殊的須要。服務器

(3)抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解所有問題,而只是選擇其中的一部分,暫時不用部分細節。網絡

(4)多態:多態性是指容許不一樣類的對象對同一消息做出響應。多態性語言具備靈活、抽象、行爲共享、代碼共享的優點,很好的解決了應用程序函數同名問題。

四、簡述JVMJREJDK的概念及三者關係。

答:(1)JVM(Java虛擬機)是可運行Java字節碼(.class文件)的虛擬計算機系統;JRE(Java運行環境)是運行Java程序所必須的環境的集合,JRE包括Java虛擬機、Java平臺核心類和支持文件;JDK(Java開發工具包)是針對Java開發人員的開發工具集合。

(2)JVM、JRE和JDK從範圍上講是從小到大的關係。

第二章

一、swtich是否能做用在byte上,是否能做用在long上,是否能做用在String?

答: switch ( expr1 )中, expr1 是一個整數表達式。所以  switch 能做用於byte 上。 long,string 都不能做用於 swtich 。

第三章

1、構造方法與通常方法有何區別?

答:構造方法區別於其餘方法的地方是它的名字必須與其所在的類的名字相同,且沒有返回類型。

第四章類之間的關係

1,什麼叫多態,?如何理解多態?

2overloadoverride的區別?overloaded的方法是否能夠改變返回值的類型?

3.構造器constructor是否可被override

第五章 抽象類 接口

簡述抽象類,接口的異同?

抽象類和接口

相同點: (1) 均可以被繼承 (2) 都不能被實例化 (3) 均可以包含方法聲明(4) 派生類必須實現未實現的方法

 區 別:1 接口能夠被多重實現,抽象類只能被單一繼承 2抽象類是從一系列相關對象中抽象出來的概念, 所以反映的是事物的內部共性;接口是爲了知足外部調用而定義的一個功能約定, 所以反映的是事物的外部特性  3抽象類有非抽象的方法和構造方法,而且修飾符能夠是私有的,接口只能是抽象的方法,而且修飾符是public4 若是抽象類實現接口,則能夠把接口中方法映射到抽象類中做爲抽象方法而沒必要實現,而在抽象類的子類中實現接口中方法5  抽象類是一個不完整的類,須要進一步細化,而接口是一個行爲規範。6抽象類能夠有普通成員變量,接口不行;

第六章 異常

什麼是檢查型異常,非檢查型異常

檢查型異常:指編譯器要求必須處置的異常,是程序運行時因爲外界因素形成的通常性異常

非檢查型異常:指編譯免這種異常的發生.器不要求強制處理的異常,該異常是因設計或實現方式不當致使的,能夠避

簡述java異常處理機制

java提供了兩種處理異常的機制,一是捕獲異常,二是聲明拋出異常.

在java運行過程當中系統獲得一個異常對象時,它會沿着方法的調用棧逐層回溯,尋找處理這個異常的代碼,,找到後,系統把當前異常對象教給這個方法處理,這就是捕獲異常.若是方法中不知道如何處理所出現的異常,則可在定義方法時,聲明拋出異常.

第七章

1簡述一下使用泛型有什麼優勢?

答:泛型的本質是參數化類型,也就是說所操做的數據類型被指定爲一個參數。這種參數類型能夠用在類、接口和方法的建立中,分別稱爲泛型類、泛型接口、泛型方法。 Java語言引入泛型的好處是安全簡單。泛型的好處是在編譯的時候檢查類型安全,而且全部的強制轉換都是自動和隱式的,提升代碼的重用率。

2.簡要描述ArrayList,Vector,LinkedList的存儲性能和特性?

答:ArrayList支持可隨須要而調整的動態數組。其內部封裝了一個動態再分配的Object[]數組。每一個ArrayList對象有一個capacity,表示存儲列表中元素的數組的容量。當元素添加到ArrayList時,它的capacity自動增長。在向一個ArrayList對象添加大量元素的程序中,可以使用ensureCapacity()方法增長Capacity,此法能夠減小或增長重分配的數量。Vector 因爲使用了synchronized 方法(線程安全),一般性能上較ArrayList 差,而LinkedList 使用雙向鏈表實現存儲,按序號索引數據須要進

行前向或後向遍歷,可是插入數據時只須要記錄本項的先後項便可,因此插入速度較快。

3.簡述CollectionCollections的區別。

答:java.util.Collection 是一個集合接口集合接口集合接口集合接口。它提供了對集合對象進行基本操做的通用接口方法。Collection接口在Java 類庫中有不少具體的實現。Collection接口的意義是爲各類具體的集合提供了最大化的統一操做方式。

java.util.Collections 是一個包裝類。它包含有各類有關集合操做的靜態靜態靜態靜態多態方法多態方法多態方法多態方法。此類不能實例化不能實例化不能實例化不能實例化,就像一個工具類個工具類個工具類個工具類,服務於Java的Collection框架。 Java代碼 。

4ListMapSet三個接口,存取元素時,各有什麼特色?

答:List 以特定次序來持有元素,可有重複元素。

Set 沒法擁有重複元素,內部排序。

Map 保存key-value值,value可多值。

5、描述HashMapHashtable的區別。

答:Hashtable和HashMap類有三個重要的不一樣之處。第一個不一樣主要是歷史緣由。Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現。

最重要的不一樣是Hashtable的方法是同步的,而HashMap的方法不是

只有HashMap可讓你將空值做爲一個表的條目的key或value。HashMap中只有一條記錄能夠是一個空的key,但任意數量的條目能夠是空的value。這就是說,若是在表中沒有發現搜索鍵,或者若是發現了搜索鍵,但它是一個空的值,那麼get()將返回null。若是有必要,用containKey()方法來區別這兩種狀況。

第八章:流與文件

1、Java中按照流的流向可分爲幾種,舉例說明?按照流的角色分爲幾種,舉例說明?按照流處理數據單位的大小(字節或字符)分爲幾種,舉例說明?

按照流的流向分爲:輸入流和輸出流。

按照流的角色分爲:節點流和過濾流。

按照處理流的基本單位分爲:字節流和字符流。

2、Reader類具備讀取floatdouble類型數據的方法嗎?

Reader類是表示字符輸入流的全部類的父類,主要是用於從數據源按照字符的方式讀取數據。

3、d盤中建立文件test.txt,文件中內容爲「hello java」而後利用流把該文件拷貝到e盤根目錄下?

// 在D盤中建立文件test.txt,文件中的內容爲:「hello Java」
File file = new File("D:/test.txt");
StringBuilder builder = new StringBuilder();
builder.append("hello java");
OutputStreamWriter osw = null;
try {
osw = new FileWriter(file);
osw.write(builder.toString());
} catch (IOException e) {
e.printStackTrace();
} finally { // 最後必定要關閉流
if (osw != null) {
try {
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 利用流把該文件拷貝到E盤根目錄下
InputStream ips = null;
OutputStream ops = null;
try {
ips = new FileInputStream(file);// 源文件
byte[] buffer = new byte[1024]; // 定義一個緩衝數組
ops = new FileOutputStream("E:/" + file.getName());// 目標文件
// 若是沒有讀到結尾就繼續讀,每次讀指定的字節數
for (int len = 0; (len = ips.read(buffer)) != -1;) {
ops.write(buffer, 0, len); // 每次寫出實際讀取到長度
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally { // 最後關閉流
if (ips != null) {
try {
ips.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (ops != null) {
try {
ops.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

4、編程模仿dos下的dir命令,列出某個目錄下的內容?

5、簡述序列化和反序列化概念?

對象的序列化就是把對象寫入到一個輸出流中,對象的反序列化是指從一個輸入流中讀取一個對象。

小結:一、java把不一樣類型的輸入、輸出源抽象爲流,用統一接口來表示,從而使程序簡單明瞭。

二、Java中提供了處理字節流的類,既以inputstream和outputstream爲基類派生出的一系列類。

三、Java中提供了處理unicode碼錶示的字符流的類,既以reader和writer爲基類派生出的一系列類。

四、序列化是將數據分解成字節流,以便存儲在文件中或者在網絡上傳輸;反序列就是打開字節流並重構對象。

五、一個類能夠序列化必須實現serializable和externaliable接口。/ / http://www.pprar.com

六、Java提供了支持對象序列化的對象流:objectinputstream和objectoutputstream。

第九章:JDBC

1、簡述JDBC訪問數據庫的步驟?

一、加載JDBC驅動程序二、建立數據庫鏈接三、建立statement四、執行SQL語句五、處理返回結果六、關閉建立的對象

2、使用JDBC查詢Scott用戶的emp表中的全部信息?

String sql="select * from emp";
PreparedStatement stmt =conn.prepareStatement(sql);//
ResultSet rs = stmt.executeQuery();

int columnCount = rs.getMetaData().getColumnCount(); //這地方補充了一下
while (rs.next()) {
    for (int i = 1; i <= columnCount; i++) {
        //map.put(md.getColumnName(i), rs.getObject(i));
        System.out.println( md.getColumnName(i) + " -- " +  rs.getObject(i) );
    }
}

小結:一、JDBC是java應用與數據庫通訊的的基礎。

二、dbc包含一組類與接口,用於鏈接到任何數據庫。

三、Jdbc經過result維持查詢結果集,並提供遊標進行數據操做。

四、經過statement實現靜態SQL查詢。

五、使用preparestatement實現動態SQL查詢。

六、使用callablestatement實現存儲過程的調用。

七、Databasemetadata接口用於獲得關於數據庫的信息。

八、Resultsetmetadata接口主要用來獲取結果集的結構。

九、Jdbc默認的事務提交模式是自動提交。

十、經過setautocommit()方法控制自動提交模式,使用rollback()方法實現事務回滾。

第十章

1簡述適配器與監聽接口的區別?

區別:適配器只須要重寫須要的事件處理方法,而監聽接口須要實現所有的方法。

監聽接口中定義了抽象的事件處理方法,這些方法針對不一樣的操做進行不一樣的處理。在程序中,一般使用監聽類實現監聽接口中的事件處理方法。監聽接口定義在java.awt.event包中,該包中提供了不一樣事件的監聽接口,這些接口中定義了不一樣的抽象的事件處理方法。

擴展監聽接口時,有些事件處理方法是不須要的,但必須重寫。處於簡化代碼的目的,java.awt.event包中有提供了一套抽象適配器類,分別實現每一個具備多個事件處理方法的監聽接口。這樣繼承適配器後,能夠僅重寫須要的事件處理方法。

2事件處理的步驟:

(1)建立監聽類,在事件處理方法中編寫事件處理代碼

(2)建立監聽對象

(3)利用組件的addXXXListener()方法將監聽對象註冊到組件上

第十一章

簡述實現一個自定義的對話框的步驟?

(1)    繼承JDialog類,在構造方法中傳入參數

(2)    在對話框中添加用戶界面組件

(3)    添加事件處理

(4)    設置對話框大小

第十二章

簡述什麼是多線程?

線程的最主要功能是多任務處理,即多線程。多線程也就是在主線程中有多個線程在運行,多個線程的執行是併發的,在邏輯上「同時」,而無論是否是物理上的「同時」。

多線程和傳統上的單線程在程序設計上的區別在於:

因爲各個線程的控制流彼此獨立,使得各個線程之間的代碼是亂序執行的,由此帶來的線程調度、同步等問題是須要重點留意的。

3         java如何進行異常處理

try代碼塊的功能就是監視異常的發生 ,若是try塊中的代碼產生異常時則由catch快進行捕獲並處理,也就是說catch、代碼塊中的代碼用於處理try代碼塊中拋出的具體異常類型的異常對象                                                                  

try 不能夠拋出異常

相關文章
相關標籤/搜索