1.當參數和成員命名相同時用this關鍵字,this是對他所成方法所屬對象的引用;java
2.構造代碼塊:設計模式
特色:對象一創建就運行,且優先於構造方法的執行數組
做用:用於給對象進行初始化安全
和構造方法的區別:構造方法是對對應對象進行初始化,構造代碼塊是定義不一樣對象共性的初始化內容函數
3.構造方法之間的調用:只能經過this語句來完成,且只能寫在第一行,一個構造方法只可導入一個構造方法工具
4.static修飾符(又稱靜態變量,靜態成員,類變量):用於修飾成員變量和成員方法,位於內存中的data segment(數據區或共享區)。而實例對象爲不是static的變量,存放在對象裏測試
特色:修飾後的成員變量只有一份;this
當成員被static修飾以後,多了一種訪問方式,即類名直接調用;spa
隨着類名的加載而加載,優先於對象,且被全部對象共享設計
5.靜態方法注意事項:1.靜態方法只能訪問靜態成員;
2.靜態成員能夠被非靜態方法訪問;
3.局部變量不可被static修飾
4.靜態方法中不可定義this,super關鍵字,由於靜態優先於對象存在
什麼時候使用靜態方法?當功能內部未訪問非靜態成員時,那麼該功能能夠定義成靜態的
6.生命週期:類變量生命週期最長,隨着類消失而消失
實例變量生命週期最短,隨着對象消失而消失
7.主函數
1.public表明該類或該函數訪問權限是最大的
2.static表明主函數隨着類的加載就已經存在了
3.void表明無具體返回值
4.main不是java的關鍵字,他是一個特殊單詞,變量不可用關鍵字,可以被JVM所識別
5.String[] args函數的參數類型是一個字符串類型數組,當數組爲空時,沒有零下標
8.靜態應用工具類
每個應用程序都有共性的功能,可將這些功能進行抽取,進行封裝,以備複用
9.對象的做用:用來封裝數據,只要類裏有非靜態的成員時,那對象就必須存在
10.classpath:主要是在執行時使用: set classpath=...
set classpath=. (單個.表示當前目錄)
set classpath=.;...(表示.和...兩個目錄均可以)
11.文檔註釋相關,文檔提取工具javadoc.exe javadoc -d Mydoc(沒有Mydoc會自動建立) -author -version ***.java 保證類是public的
/**
@param 表示傳入
@return 表示返回
@author表示做者
@version表示版本
*/
12.靜態代碼塊(區別於構造代碼塊)
static 靜態代碼中的執行語句
特色:隨着類的加載而執行,而且只會執行一次,而且還會優先於主函數
做用:用於給類進行初始化
13.new一個對象的內存操做步驟
1.new 。。。會把類從硬盤上加載入內存;
2.若有static靜態代碼塊,會隨着類的加載而加載,同理靜態成員和普通方法也是同樣
3.在堆內存中開闢空間,分配內存地址;
4.在堆中創建特有屬性,並同時對特有屬性進行默認的初始化
5.對屬性進行顯示初始化
6.執行構造代碼塊,對全部對象初始化
7.執行構造函數,對對象進行初始化
8.將內存地址給棧中的變量
14.設計模式:針對此類問題最有效的解決方法,java23種設計模式,單例設計模式,只有一個對象
15.繼承:1.提升了代碼的複用性,簡化了代碼
2.讓類與類之間產生了繼承關係,纔有了後面的多態特性的存在
3.注意:千萬不要爲了獲取其它類的功能簡化代碼而創建繼承關係,必須類與類之間存在繼承關係,
父類又稱爲超類,基類 繼承關係:is a 子類擁有父類的成員,但不包括被private修飾的
4.多層繼承,最下層子類擁有整個繼承體系的成員,最上層父類擁有全部繼承描述
5.java中不存在多繼承,由於多繼承存在安全隱患,當多個父類定義了相同的成員,子類對象沒法肯定運行哪個,接口能夠實現
6.訪問當前對象子類成員用this,this.變量時,首先在本類中找須要的變量,若是沒有再去父類中找,訪問當前對象父類成員用super
7.函數的重寫(覆蓋)注意::必須保證子類的權限》=父類纔可覆蓋,不然編譯出錯;靜態的函數只能覆蓋靜態的函數;要保證子父類方法徹底同樣(包括參數)
8.權限修飾符,public,default(未加修飾符時默認),private,權限依次下降
9.構造函數在子父類中的特色:構造方法沒法被重寫,每一個子類構造方法會有第一條隱式的super(),調用父類的無參數構造方法,也可給參數調用有參構造方法
16.對象轉型:
1.對象的向上轉型,子類轉成父類
2.對象的向下轉型,父類轉成子類須要強制進行
3.關鍵字:instanceof測試左邊的對象是不是右邊類的實例,若是是則返回true,不是則返回false(a instanceof b)
17.多態
體現:父類引用指向子類對象
前提:必須得類與類之間存在關係,能夠是繼承關係或實現關係
必須有重寫
多態成員變量的特色:編譯期間:參閱的是引用型變量所屬的類中是否有調用的方法;運行期間,參閱對象所屬的類中是否有調用的方法
好處:大大提升了程序的可擴展性
弊端:只能用父類的引用訪問到父類中的成員
18.匿名對象:1.當對對象的方法只調用一次時可以使用來簡化;2.匿名對象能夠被當作實參來傳遞
19.object類是java中全部對象的直接或間接父類,「==」和object裏面的equals都是比較兩對象的內存地址是否一致
20.final能夠修飾類函數及變量(成員,局部),被final修飾過的類不能夠被其餘類繼承,被final。。。的函數不可被重寫;。。。的變量不容許再次被賦值,因此被final修飾過的變量被稱爲常量,變量名大寫