(1)面向對象 (2)跨平臺性 (3)可移植性 (4)安全性 (5)併發性 (6)分佈式 (7)簡單易用java
(1)源文件由編譯器編譯成字節碼(ByteCode)
(2)字節碼由java虛擬機解釋執行數組
class A extends B;
class C extends A安全
java中不支持類的多繼承,即不能同時繼承多個直接父類。但接口中沒有具體的實施細節,也就沒有和存儲空間的關聯,因此能夠將多個接口合併在一塊兒,間接實現類間多重繼承的功能。併發
final修飾的類被稱爲終極類,它不能被繼承分佈式
more:final修飾的方法被稱爲終極方法,若是父類中的某個方法用final修飾,則子類不能再重寫該方法了,子類只能繼承該方法的功能,注意:final不能被用來修飾構造函數。終極類中的方法默認是終極方法函數
重載:測試
(1)方法重載是讓類以統一的方式處理不一樣類型數據的一種手段。多個同名函數同時存在,具備不一樣的參數個數/類型。重載是一個類中多態性的一種表現。code
(2)java的方法重載,就是在類中能夠建立多個方法,他們具備相同的名字,但具備不一樣的參數和不一樣的定義。調用方法時經過傳遞給他們的不一樣參數個數和參數類型來決定具體使用哪一個方法,這就是多態性。對象
(3)重載的時候,方法名要同樣,可是參數類型和個數不同,返回值類型能夠相同也能夠不相同。沒法以返回類型做爲重載函數的區分標準。繼承
重寫:
(1)父類與子類之間的多態性,對父類的函數進行從新定義。若是在子類中定義某方法與其父類有相同的名稱和參數,咱們說該方法被重寫 (Overriding)。在Java中,子類可繼承父類中的方法,而不須要從新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想做必定的修改,這就須要採用方法的重寫。方法重寫又稱方法覆蓋。
(2)若子類中的方法與父類中的某一方法具備相同的方法名、返回類型和參數表,則新方法將覆蓋原有的方法。如需父類中原有的方法,可以使用super關鍵字,該關鍵 字引用了當前類的父類。
(3)子類函數的訪問修飾權限不能少於父類的。
繼承是從已有的類中派生出新的類,新的類能吸取已有類的數據屬性和行爲,並能擴展新的能力。
interface Animal{ abstract void run(); }
class Bird implements Animal{ } class Fish implements Animal{ }
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(); } }
原理:每當產生異常時,若是沒有程序進行相應的處理,則程序會中斷的現象,那麼此時實際上產生一個異常後,JVM會拋出一個異常類的實例化對象,若是此時使用了try語句進行補貨的話,則能夠進行異常處理,若是沒有的話,則交給了JVM進行處理,當try語句補貨到了一場以後,會與catch中的異常類型進行匹配,若是匹配成功,則使用此catch語句進行處理。
應用:簡單的應用,就是在全部throws關鍵字的地方加入try...catch
java異常處理機制能夠從兩個方面來描述,當一個java程序違反了java語義的時候,JVM就會拋出一個異常,除此以外還能夠自定義異常,去拓展這種語義的檢查,並在合適的時機,經過throw關鍵字拋出異常
int array[]; array = new int[5];
數組聲明之後在內存中沒有分配具體的存儲空間,也沒有設定數組的長度
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(); } }
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; }