package TEXT02;
public class TEXT02 {
public static void main(String[] args) {
}
}
/*
- TEXT02:
- 1.記憶體管理:由JVM來管理
- 1)堆:
-
1.1)專門用于存儲new關鍵字所建立的對象(包括成員變量)
-
1.2)成員變量的生命周期:
-
建立(new)對象時存在堆中,對象被GC(JAVA自動回收垃圾)回收時一并消失
-
1.3)垃圾:沒有任何引用所指向的對象
-
垃圾回收器(GC)不定時到堆中掃描,看到垃圾則自動回收垃圾 。
-
回收過程是透明的,并不是一看到垃圾就回收的。
-
若想讓它快一點回收,可以調用System.gc()
-
1.4)記憶體洩漏:不再使用的對象還沒有被及時的回收
-
建議:當對象不再使用時,應及時将引用設定為NULL
- 2)棧:
-
2.1)棧用于存儲正在調用中的方法的所有局部變量(包括參數)
-
2.2)調用方法時在棧中為該方法配置設定一塊對應的棧桢。
-
棧桢中包含所有的局部變量(包括參數),
-
方法調用結束時,棧桢消失,局部變量一并消失
-
2.3)局部變量的生命周期:
-
調用方法時存在棧中,方法調用結束時與棧桢一并消失
- 3)方法區:
-
3.1)用于存儲字.class節碼檔案(包括方法)
-
3.2)方法隻有一份,通過this來區分具體是哪個對象
- 2.繼承:(泛化的過程)
- 1)目的:避免代碼重複,有利于代碼的重用
- 2)通過extends實作繼承
- 3)父類/基類:所有子類中所共有的屬性和行為
-
子類/派生類:子類所特有的屬性和行為
- 4)子類繼承父類後,子類将會具有:
-
子類+父類
- 5)一個父類可以有多個子類
-
一個子類隻能有一個父類-------單一繼承
- 6)繼承具有傳遞性
- 7)java規定:構造子類之前必須先構造父類
-
子類的構造中,若沒有調用父類的構造方法,則預設super()調用父類的構造方法
-
若自己調了,則不再提供預設
-
super()調用父類構造方法,必須位于子類構造方法中的第一句
- 3.super:指代目前對象的父類對象
- 用法:
-
super.成員變量名-----通路父類的成員變量
-
super.成員名()------調用父類的方法
-
super()------------調用父類的構造方法,括号中能寫值(如果父類中有有參構造)
- 4.向上造型:
- 1)父類型的引用指向子類的對象------父 a = new 子();
- 2)能點出來什麼,看引用的類型
- 成員變量
- 1.類中方法外
- 2.new時存在堆中,對象被回收時消失
- 3.有預設值
- 局部變量
- 1.方法中
- 2.調方法時存在棧中,方法結束時與棧桢一并消失
- 3.沒有預設值
- class Person{//父類
-
String name;
-
int age;
-
String address;
-
void set(){}
-
void sleep(){}
- }
- class Student extends Person{//子類
-
String className;
-
void study(){}
- }
- class Teacher extends Person{//子類
-
double salary;
-
void teach(){}
- }
- 繼承的傳遞性
- Coo中存在a,b,c
- class Aoo{
- int a;
- }
- class Boo extends Aoo{
- int b;
- }
- class Coo extends Boo{
- int c;
- }
*/