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