記憶體管理和麵向物件
阿新 • • 發佈:2018-11-13
面向物件的三大特徵
1.封裝
1.1類:封裝物件的屬性和行為1.2方法:封裝特定的業務功能實現
1.3訪問控制修飾符:封裝訪問許可權
2.繼承
2.1作用:減少程式碼的重複有利於程式碼的複用
2.2超類:所有派生類所共有的屬性和行為
介面:部分派生類共有的行為
派生類:物件特有的屬性和行為
3.多型
3.1意義:行為的多型,物件的多型
3.2向上造型、強制型別轉換、instanceof
3.3多型的形式:
3.3.1重寫:依據物件來多型
3.3.2過載:依據引數來多型
記憶體管理:由JVM管理的
1.堆:
1.1 儲存所有new出來的物件(包括例項變數)
1.2 垃圾:沒有任何引用指向的物件
垃圾回收器(GC)不定時到記憶體的堆中清理垃圾
回收過程是透明的,不一定發現立即回收
呼叫System.gc()可以建議虛擬機器儘快呼叫GC來回收。
1.3 記憶體洩漏:不在使用的記憶體沒有及時被回收。
建議:物件不在使用時,及時將引用設定為null
1.4 例項變數的生命週期:
建立物件時存在堆中,物件被回收時,一併被回收
2.棧:
2.1 儲存正在呼叫中的方法中的區域性變數(包括引數)
2.2 呼叫方法時,在棧中為方法分配一塊棧幀,棧幀中包含方法的區域性變數和引數。
方法呼叫結束時,棧幀被清除,區域性變數一併被清除、
2.3區域性變數的生命週期:
呼叫方法時,存在棧中,方法呼叫結束,棧幀被清除,一併被清除
3.方法區:
3.1 儲存.class位元組碼檔案(包括靜態變數和方法)
3.2方法只有一份,通過this來區分具體的物件