第1章 對象導論編程
本章主要講OOP的思想及一些OOP基本概念數組
一、抽象過程:萬物都是對象,對象具備狀態、行爲和標識。對象擁有屬性和方法,以及在內存中的惟一地址。併發
二、每一個對象都有一個接口:經過接口給對象發送消息請求來控制和操做對象,這裏的接口是指對象的方法。函數
三、每一個對象都提供服務:將對象想象成服務提供者,調用對象提供的服務來實現某一目的。spa
四、被隱藏的具體實現:對象對外界只提供服務接口,而隱藏內部的實現細節,經過關鍵字(public、private、protected)來設定邊界。對象
五、複用具體實現:新建的類能夠複用建立好的類實現更加複雜的功能。繼承
六、繼承:導出類能夠擁有父類全部的特性。接口
七、多態:不一樣子類能夠不一樣的方式實現基類的方法。生命週期
八、單根繼承:OOP的全部類都繼承自Object。內存
九、容器:對象的集合List、Map、Set,參數化類型ArrayList<String>實現正確的轉型
十、對象的建立和生命週期:Java採用動態內存分配方式,new一個對象存儲在堆中,由於是動態分配管理因此建立時間將遠遠大於直接在堆棧(C++存儲在此)中建立空間的時間,動態分配能夠帶來更大的靈活性,C++須要經過編程方式來銷燬對象否則可能會致使內存泄漏,Java經過垃圾回收器自動內存釋放。
十一、異常處理:Java內置了異常處理機制。
十二、併發:Java的併發內置於語言中。
1三、Java與Internate。
第2章 一切都是對象
一、用引用操縱對象。
二、對象都由new 來建立,存儲數據的5個地方 寄存器(不能認爲控制)、堆棧(RAM區)、堆(RAM區,全部的Java對象都存於此)、常量存儲(程序代碼內部)、非RAM存儲(存儲存活於程序以外的數據)。
三、Java類的基本成員會自動設置默認值。
四、類建立的全部對象的Static字段只分配一個內存。
第3章 Java操做符
一、==和!=比較的是對象的引用
Integer n1=new Integer(47);//new 的就是對象
Integer n2=new Integer(47);
System.out.println(n1==n2); //false
System.out.println(n1!=n2); //true
比較兩個對象的實際內容是否相同用equals(),這個方法不適用與基本類型,基本類型用==和!=便可
System.out.println(n1.equals(n2)); //true
下一種情形:
class Value{
int i;
}
Value v1=new Value();
Value v2=new Value();
v1.i=v2.i=100;
System.out.println(v1.equals(v2)); //false
因爲equals默認行爲是比較引用,因此這句輸出的是false,上例中基本類型Interger的equals方法是覆蓋過的,因此輸出的是true。
第4章 控制執行流程
一、
if-else
while
do-while :至少執行一次do的內容
for
Foreach:for(String s : str) str是一個String數組
二、標籤:Java須要使用標籤的惟一理由是由於有循環嵌套,而想從多層嵌套中break或Continue
標籤的語法: label: 標籤後面跟有冒號的標識符
Outer: //定義標籤
while(true){
while(true){
i++;
if(i==3)
continue Outer; // 帶標籤的continue會到達標籤的位置,並從新進入緊接在那個標籤後的循環。
if(i==5)
break Outer; //帶標籤的break會中斷並跳出標籤所指的循環。
}
...
}
三、Switch的參數必須是int或char的整數值或者enum值。
第5章 初始化與清理
一、用構造函數確保初始化:與類同名且沒有返回值
二、初始化順序:自動初始化將在調用構造器以前,按類中變量定義的前後順序
三、可變參數:Object......args
四、枚舉:enum.values(),enum.ordinal() 獲取聲明順序