RE:JAVA学习-了解内存管理+继承的意义

一.内存管理:由JVM管理———-了解
1>堆:
1.1>用于存储所有new出来的对象(包括成员变量)
1.2>垃圾:没有任何引用所指向的对象
垃圾回收器(GC)不定时到内存中清扫垃圾,
并不一定 一发现垃圾就立即回收,
回收过程是透明的(看不到的)
1.3>内存泄漏:不再使用的内存没有被及时的回收
(建议 不再使用的对象,及时将引用设置为null)
1.4>成员变量的生命周期:
创建对象时存储在堆中,对象被回收时一并被回收
2>栈:
2.1>用于存储正在调用的方法中的所有局部变量来了(包括参数)
2.2>JVM会为每一个正在调用的方法分配一块对应的栈帧,
栈帧中存储方法中的局部变量(包括擦擦念书),
方法调用结束时,栈帧被清除,局部变量一并被清除
2.3>局部变量的生命周期:
调用方法时存在栈中,方法结束时与栈帧一并被清除
3>方法区:
3.1>用于存储.class字节码文件(包括方法)
3.2>方法只有一份,通过this来区分具体的对象
二.继承:
1>作用:实现代码的复用
2>通过extends来实现继承
3>父类:所有子类所共有的属性和行为
子类:子类所特有的属性和行为
4>子继承父类之后,子类将具有:子类+父类
5>一个父类可以有多个子类
一个子类只能有一个父类———-单一继承
6>继承具有传递性
7>java规定:构造子类之前必须先构造父类
子类构造方法中若字节不调用父类对的构造方法,则默认super()默认调用父类的无参构造
若自己调用类父类的构造,则不再调用
super()调用父类构造,必须位于子类构造方法的第一行

public class SuperDemo {

    public static void main(String[] args) {
        Coo d=new Doo();
    }
}
class Coo{
    Coo(int n){
        System.out.println(n);
    }
}
class Doo extends Coo{
    Doo(){
        super(5);
        System.out.println("doo");
    }
}

三.super:指代当前对象的父类对象
用法(与this类似):
1>super.成员变量名 访问父类的成员变量
2>super.方法名() 调用父类的方法
3>super() 调用父类的构造方法

四.向上造型–多态的一种体现
1>父类型的引用指向子类的对象 Person p= new Student();
2>能点出来什么,看引用的类型

public class UpTypeDemo {

    public static void main(String[] args) {
        Eoo o3=new Foo(2);//向上造型
        o3.e=1;
        //o3.f=2;//不能访问子类的对象
        o3.show();//能使用什么方法看引用的类型
        //o3.test();
    }
}
class Eoo{
    int e;
    Eoo(){
        System.out.println("Eoo");
    }
    void show(){
    }
}
class Foo extends Eoo{
    int f=1;
    Foo(int n){
        f=n;
        System.out.println(f);
        System.out.println("FOO");
    }
    void test(){

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值