第一章 java發展史與開發環境
1、java語言特點
(1)物件導向 (2)跨平臺性 (3)可移植性 (4)安全性 (5)併發性 (6)分散式 (7)簡單易用
2、java程式執行過程
(1)原始檔由編譯器編譯成位元組碼(ByteCode)
(2)位元組碼由java虛擬機器解釋執行
第四章 java的繼承性與多型性
1、如果有兩個類A,B(注意不是介面),你想同時使用這兩個類的功能,你會如何編寫這個C類呢
class A extends B;
class C extends A
2、介面有什麼優點:
java中不支援類的多繼承,即不能同時繼承多個直接父類。但介面中沒有具體的實施細節,也就沒有和儲存空間的關聯,所以可以將多個介面合併在一起,間接實現類間多重繼承的功能。
3、在java中如果宣告一個類為final,表示什麼意思?
final修飾的類被稱為終極類,它不能被繼承
more:final修飾的方法被稱為終極方法,如果父類中的某個方法用final修飾,則子類不能再重寫該方法了,子類只能繼承該方法的功能,注意:final不能被用來修飾建構函式。終極類中的方法預設是終極方法
4、請簡述過載和重寫的區別
過載:
(1)方法過載是讓類以統一的方式處理不同型別資料的一種手段。多個同名函式同時存在,具有不同的引數個數/型別。過載是一個類中多型性的一種表現。
(2)java的方法過載,就是在類中可以建立多個方法,他們具有相同的名字,但具有不同的引數和不同的定義。呼叫方法時通過傳遞給他們的不同引數個數和引數型別來決定具體使用哪個方法,這就是多型性。
(3)過載的時候,方法名要一樣,但是引數型別和個數不一樣,返回值型別可以相同也可以不相同。無法以返回型別作為過載函式的區分標準。
重寫:
(1)父類與子類之間的多型性,對父類的函式進行重新定義。如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 (Overriding)。在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要採用方法的重寫。方法重寫又稱方法覆蓋。
(2)若子類中的方法與父類中的某一方法具有相同的方法名、返回型別和參數列,則新方法將覆蓋原有的方法。如需父類中原有的方法,可使用super關鍵字,該關鍵 字引用了當前類的父類。
(3)子類函式的訪問修飾許可權不能少於父類的。
5、什麼是繼承
繼承是從已有的類中派生出新的類,新的類能吸收已有類的資料屬性和行為,並能擴充套件新的能力。
1、編寫Animal介面,介面中宣告run()方法
interface Animal{
abstract void run();
}
2、定義bird類和Fish類實現Animal介面
class Bird implements Animal{
}
class Fish implements Animal{
}
3、編寫Bird類和Fish類的測試程式,並呼叫其中的run方法
class Bird implements Animal{
public void run(){
System.out.println("測試成功");
}
}
class Fish implements Animal{
public void run(){
System.out.println("測試成功");
}
}
public class Animaljiekou{
public static void main(String[] args){
Animal p1;
p1 = new Bird();
p1.run();
p1 = new Fish();
p1.run();
}
}
第五章 java異常處理機制
1、簡述java中的異常處理機制的簡單原理和應用
原理:每當產生異常時,如果沒有程式進行相應的處理,則程式會中斷的現象,那麼此時實際上產生一個異常後,JVM會丟擲一個異常類的例項化物件,如果此時使用了try語句進行補貨的話,則可以進行異常處理,如果沒有的話,則交給了JVM進行處理,當try語句補貨到了一場之後,會與catch中的異常型別進行匹配,如果匹配成功,則使用此catch語句進行處理。
應用:簡單的應用,就是在所有throws關鍵字的地方加入try…catch
2、簡述java中異常處理的機制
java異常處理機制可以從兩個方面來描述,當一個java程式違反了java語義的時候,JVM就會丟擲一個異常,除此之外還可以自定義異常,去擴充這種語義的檢查,並在合適的時機,通過throw關鍵字丟擲異常
第六章 陣列、字串和集合類
1、
int array[];
array = new int[5];
3、宣告陣列變數會為陣列分配記憶體空間嗎,為什麼?
陣列宣告以後在記憶體中沒有分配具體的儲存空間,也沒有設定陣列的長度
5、有一個整數陣列,其中存放著1,2,3,4,5,6,7,8,9,將該陣列倒序存放並輸出
public class ReverseArray {
public static void main(String[] args) {
int arr[] = new int[] { 1,2,3,4,5,6,7,8,9 };
for(int i = 0; i < arr.length / 2; i++){
int temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
for (int i = 0; i < arr.length; i++) {
//System.out.println(arr[i]); //每個一行
System.out.print(" "+arr[i]); //全部一行
}
System.out.println();
}
}
6、在一個陣列元素值遞增的陣列中插入一個元素值,要求按原來的規律將它插入陣列中合適的位置(使用折半查詢)
public static int arrayIndexOf(int[] array,int key) {
int min,max,mid;
min = 0;
max = array.length - 1;
while(min <= max) {
mid = (min + max) >> 1;
if (key > array[mid]) {
min = mid + 1;
} else if (key < array[mid]) {
max = mid - 1;
} else {
return mid;
}
}
return min;
}