定義html
面向對象是一種思惟方式,相對於面向過程面向過程注重流程中的每一步,清楚流程中的每個細節面向對象注重的是對象,有了對象就有對象的一屆本身動手作--面向過程,找其餘人作面向對象面向對象和麪向過程各有優劣,復瑣事務面向對象,簡單事務面向過程面向對象基於面向過程java
類與對象的關係node
類是對象的歸納/抽取經過new關鍵字建立對象,能夠給對象的屬性賦值,也可調用方法git
對象的內存存儲github
屬性存在堆中對象存在棧中web
成員變量和局部變量做用範圍不一樣內存位置不一樣生命週期不一樣windows
構造方法特色;與類名相同沒有返回值做用;用於建立對象能夠重載app
this關鍵字代替本類對象調用本類中的屬性和方法表明本類在活動的對象的引用--即虛擬對象利用this調用對應的構造方法時必須放在構造方法的首行構造代碼塊初始代碼塊--用{}包起來的代碼不管用哪一個構造方法建立對象,它都會在構造方法前執行一次局部代碼塊方法中用{}包起來的代碼提升棧內存的利用率less
面向對象的特徵封裝權限修飾符publicprotected默認private方法屬性的私有化內部類繼承利用extends關鍵字子類經過繼承可使用父類中的一部分方法和屬性java單繼承多繼承比單繼承更好的提升代碼複用性單繼承更能明確方法的調用單繼承提升了代碼的複用性,也避免了方法調用產生的混亂super關鍵字在子類中表示父類對象的引用,一個虛擬對象子類經過super來調用父類的方法和 屬性super語句必須放在子類構造的第一行多態編譯時多態方法的重載是行爲的多態重載指的是在同一個類中存在方法名一致而參數列表不一樣的方法。參數列表不一樣指的是參數的 個數或者是參數類型不一樣。重載只和方法簽名有關,和修飾符、返回值類型、異常都沒有關係。重載自己是一種編譯時多態。運行時多態-基於繼承向上造型方法的重寫在父子類存在方法簽名一致的非靜態方法兩等兩小一大重寫指的是在父子類中存在方法簽名相同的非靜態方法。在構成重寫的時候,子類方法的權限修飾符的範圍要比父類權限修飾符的範圍大或者保持一致。子類在重寫父類方法的時候,若是父類方法返回值類型是基本類型或者是void,那麼子類方法的返回值類型要保持一致。若是父類方法返回值類型是引用類型,那麼子類方法返回值類型要和父類一致或者是父類方法返回值類型的子類。子類在重寫方法的時候所拋出的編譯時異常不能超過父類編譯時異常的範圍。重寫自己是一種運行時多態。抽象abstract修飾符修飾方法;抽象方法,子類繼承後必須重寫抽象方法能夠被重載不能被static/final/private修飾若是抽象方法用默認權限,那麼子類必須與父類同包修飾類,抽象類;抽象方法存在的類必須是抽象類不能建立對象有構造方法不能用final修飾能夠有其餘方法和屬性,不必定有抽象方法ide
static-靜態靜態變量/類變量類是加載到方法區中類在第一次使用時加載到方法區,加載以後不會移除靜態方法/類方法隨着類加載到方法區中,先於對象存在用類名調用靜態方法在靜態方法中不能夠直接使用本類中的非靜態屬性和方法不能夠定義靜態變量-靜態方法調用纔在棧中執行能夠重載能夠繼承不能夠被重寫父子類方法中能夠存在方法簽名一致的靜態方法-構成隱藏父子類中方法簽名一致時要麼都是非靜態(重寫),要麼都是靜態(隱藏)靜態代碼塊用static{}定義的代碼塊在類加載的時候執行一次執行順序:父類靜態->子類靜態->父類非靜態->子類非靜態全部的靜態只能定義在類中不能定義到代碼塊中
final修飾符修飾數據; 常量定義以後不可改變修飾方法;最終方法,不能被重寫/隱藏,能夠重載,能夠被繼承修飾類;最終類,不能被繼承
接口一個類的方法都是抽象方法,就能夠將這個類聲明爲一個接口用interface定義--jdk1.8以前接口中都是抽象方法接口不是類--不能建立對象,也沒有構造方法經過implement關鍵字讓類實現接口-類實現接口要重寫接口中的全部抽象方法java中單繼承多實現-一個類只能繼承一個父類,能夠實現多個接口接口能夠繼承多個接口,接口之間多繼承jdk1.8對接口的改進接口中的默認方法容許定義實體方法-默認方法和靜態方法實體方法要用default修飾lambda表達式當接口中只要一個抽象方法時能夠用lambda表達式建立接口對象(參數列表)->{方法體}方法體只有一句,能夠省略{}可return不寫,這一句的執行結果默認爲返回值定義表達式的時候參數類型能夠省略不寫若是一個接口在只有一個抽象方法,那麼這個接口能夠用@FunctionalInterface 聲明爲函數式接口
內部類方法內部類成員內部類靜態內部類匿名內部類在類中定義類和接口,在接口在定義類和接口
包packageimportjava.lang默認導入定義包的時候儘可能不要使用java/javax/org
垃圾分代回收機制垃圾回收針對堆內存垃圾回收是自動的由垃圾回收器GC在堆內存使用率超過70%時自動回收堆內存新生代伊甸園區倖存區minor GC初代回收老生代