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;
- }
*/