第一章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)多態:多態性是指容許不一樣類的對象對同一消息做出響應。多態性語言具備靈活、抽象、行爲共享、代碼共享的優點,很好的解決了應用程序函數同名問題。
四、簡述JVM、JRE和JDK的概念及三者關係。
答:(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,什麼叫多態,?如何理解多態?
2,overload和override的區別?overloaded的方法是否能夠改變返回值的類型?
3.構造器constructor是否可被override ?
第五章 抽象類 接口
簡述抽象類,接口的異同?
抽象類和接口
相同點: (1) 均可以被繼承 (2) 都不能被實例化 (3) 均可以包含方法聲明(4) 派生類必須實現未實現的方法
區 別:1 接口能夠被多重實現,抽象類只能被單一繼承 2抽象類是從一系列相關對象中抽象出來的概念, 所以反映的是事物的內部共性;接口是爲了知足外部調用而定義的一個功能約定, 所以反映的是事物的外部特性 3抽象類有非抽象的方法和構造方法,而且修飾符能夠是私有的,接口只能是抽象的方法,而且修飾符是public4 若是抽象類實現接口,則能夠把接口中方法映射到抽象類中做爲抽象方法而沒必要實現,而在抽象類的子類中實現接口中方法5 抽象類是一個不完整的類,須要進一步細化,而接口是一個行爲規範。6抽象類能夠有普通成員變量,接口不行;
第六章 異常
1 什麼是檢查型異常,非檢查型異常
檢查型異常:指編譯器要求必須處置的異常,是程序運行時因爲外界因素形成的通常性異常
非檢查型異常:指編譯免這種異常的發生.器不要求強制處理的異常,該異常是因設計或實現方式不當致使的,能夠避
2 簡述java異常處理機制
java提供了兩種處理異常的機制,一是捕獲異常,二是聲明拋出異常.
在java運行過程當中系統獲得一個異常對象時,它會沿着方法的調用棧逐層回溯,尋找處理這個異常的代碼,,找到後,系統把當前異常對象教給這個方法處理,這就是捕獲異常.若是方法中不知道如何處理所出現的異常,則可在定義方法時,聲明拋出異常.
第七章
1簡述一下使用泛型有什麼優勢?
答:泛型的本質是參數化類型,也就是說所操做的數據類型被指定爲一個參數。這種參數類型能夠用在類、接口和方法的建立中,分別稱爲泛型類、泛型接口、泛型方法。 Java語言引入泛型的好處是安全簡單。泛型的好處是在編譯的時候檢查類型安全,而且全部的強制轉換都是自動和隱式的,提升代碼的重用率。
2.簡要描述ArrayList,Vector,LinkedList的存儲性能和特性?
答:ArrayList支持可隨須要而調整的動態數組。其內部封裝了一個動態再分配的Object[]數組。每一個ArrayList對象有一個capacity,表示存儲列表中元素的數組的容量。當元素添加到ArrayList時,它的capacity自動增長。在向一個ArrayList對象添加大量元素的程序中,可以使用ensureCapacity()方法增長Capacity,此法能夠減小或增長重分配的數量。Vector 因爲使用了synchronized 方法(線程安全),一般性能上較ArrayList 差,而LinkedList 使用雙向鏈表實現存儲,按序號索引數據須要進
行前向或後向遍歷,可是插入數據時只須要記錄本項的先後項便可,因此插入速度較快。
3.簡述Collection和Collections的區別。
答:java.util.Collection 是一個集合接口集合接口集合接口集合接口。它提供了對集合對象進行基本操做的通用接口方法。Collection接口在Java 類庫中有不少具體的實現。Collection接口的意義是爲各類具體的集合提供了最大化的統一操做方式。
java.util.Collections 是一個包裝類。它包含有各類有關集合操做的靜態靜態靜態靜態多態方法多態方法多態方法多態方法。此類不能實例化不能實例化不能實例化不能實例化,就像一個工具類個工具類個工具類個工具類,服務於Java的Collection框架。 Java代碼 。
4、List、Map和Set三個接口,存取元素時,各有什麼特色?
答:List 以特定次序來持有元素,可有重複元素。
Set 沒法擁有重複元素,內部排序。
Map 保存key-value值,value可多值。
5、描述HashMap和Hashtable的區別。
答:Hashtable和HashMap類有三個重要的不一樣之處。第一個不一樣主要是歷史緣由。Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現。
最重要的不一樣是Hashtable的方法是同步的,而HashMap的方法不是
只有HashMap可讓你將空值做爲一個表的條目的key或value。HashMap中只有一條記錄能夠是一個空的key,但任意數量的條目能夠是空的value。這就是說,若是在表中沒有發現搜索鍵,或者若是發現了搜索鍵,但它是一個空的值,那麼get()將返回null。若是有必要,用containKey()方法來區別這兩種狀況。
第八章:流與文件
1、Java中按照流的流向可分爲幾種,舉例說明?按照流的角色分爲幾種,舉例說明?按照流處理數據單位的大小(字節或字符)分爲幾種,舉例說明?
按照流的流向分爲:輸入流和輸出流。
按照流的角色分爲:節點流和過濾流。
按照處理流的基本單位分爲:字節流和字符流。
2、Reader類具備讀取float和double類型數據的方法嗎?
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 不能夠拋出異常