最近剛開始學Java,找了一些視頻文件,看了翁愷的和孫鑫的,覺得還算不錯,自己邊學邊記錄下一些重點,方便自己以后的查閱,下面這些不是簡單的抄筆記,而是自己消化了之后從新組織的語言,力求簡潔易懂!有了問題我還會修改的。
?
引用
Java中的對象定義都是定義為一個引用,其本身并不存儲對象的數值,只是存儲指向對象內存塊兒的指針,其本質就是不能運算的指針。
Break 跳出雙層循環
格式:break 標號
具有部分goto語句功能,用于跳出循環,尤其是雙層循環。
This關鍵字
this關鍵字可以為已調用了其方法的那個對象生成相應的句柄,即調用這個函數的那個對象就是this。this可以在一個構造函數中調用另一個構造函數,但只能調用一個。
af ( int a ){}? //構造函數1(即被調用的構造函數)
af ( int a , String b){ this(a); }?? //構造函數2
finalize() 在運行垃圾回收器之前運行的函數
靜態的東西屬于類,動態的東西屬于對象。
對象初始化的順序
1.?????? 創建一個對象時,先要找到其對應的.class文件。
2.?????? 檢查對象是否有父類。如果有父類,則需要執行父類中的靜態初始化。
3.?????? 執行類自己本身的靜態初始化。
4.?????? new語句首先會在內存內分配一個足夠的空間,且全部清0。
5.?????? 依次執行父類中的定義初始化和構造函數。
6.?????? 依次執行父類中的定義初始化和構造函數。(完成)
靜態初始化塊
static{???? c1 = new cpu(1);
????????????? c2 = new cpu(2);?? }
定義初始化(用于無名類的構造函數)
{???? c1 = new cpu(1);
?????? c2 = new cpu(2);?? }
每個編譯單元都是以.java為結尾的文件,在一個編譯單元里,只可以有一個public類,且這個類的名字必須與原文件的文件名相同。
類的訪問說明符
1.?????? public:?? 界面訪問
2.?????? private:? 不能接觸
3.?????? protect:? 某種友好
4.?????? friengly: 缺省包
靜態的成員變量由父類和子類共同使用,其他變量則各有一套。
綁定
動態綁定(Java常用):在程序的運行中才決定要執行的函數為哪一個函數,優點是使用靈活,缺點是執行效率低。
靜態綁定(C/C++常用):在程序運行之前就已經確定需要執行的函數,有缺點與動態相反。
Final
final的成員變量:只可賦值一次,有時會用作Java中的常量。
final的函數變量:防止繼承者改變其實現。
final的類:不可繼承。
抽象類和抽象方法
n???????? 抽象類作用僅是表達接口,其所有方法都是沒有函數體的聲明,且不能產生對象。
n???????? 包含一個抽象方法的類就是一個抽象類。
n???????? 沒有抽象方法的類也可以是一個抽象類。
n???????? 從抽象類中繼承的類必須覆蓋所有的抽象方法,否則仍是一個抽象類。
接口
n???????? 接口是一個所有方法全是抽象方法的類。
n???????? 接口可以繼承,且可以實現多繼承,但只可以從接口中繼承。
n???????? 無論是否聲明,接口中的所有方法全是public的,所有成員變量全是public static final的,其變量的值都需在編譯前確定。
n???????? 一個類可以在繼承其他類的同時實現多個接口。
內部類(inner class)
n???????? 內部類就是就是寫在類中(甚至寫在類內函數中)的類,其基本等同于類內的成員函數,包括可以加訪問說明符、可以訪問私有變量等特性。
n???????? 源文件編譯后,內部類將成為獨立的.class文件。
n???????? 私有內部類往往用于提供接口的同時隱藏自己的實現細節。
?