面向对象unit03,堆栈方法区的内存管理,成员变量,局部变量,继承,super,向上造型

在这里插入图片描述

一,内存管理:由jvm来管理

1)堆:对象和成员变量。
1.1)放两个。用于存储所有new出来的对象(包括成员变量=类内方法外的变量+new的类名)
1.2)成员变量的生命周期:创建(new)对象时存在堆中,对象被gc回收时候则被回收
1.3)垃圾回收器(gc)不定时到堆中查看,看到垃圾就回收。
垃圾:没有任何引用所指向的对象。
回收过程是透明的,并不是一看到垃圾就回收,想马上回收可以调用System.gc();
1.4)内存泄漏:不再使用的对象没有及时的回收
建议:当对象不再使用的时候,及时的设置为null
2)栈:引用类型名和局部变量
2.1)用于存储正在调用中方法的所有局部变量包括:创建对象时候的对象名+方法小括号参数变量+方法大括号里面的参数变量
2.2)调用方法时为该方法分配一块对应的空间
栈针中包含所有的局部变量(包括参数)
2.3)局部变量的生存周期:方法调用结束时,局部变量也会消失
3)方法区:
3.1)用于其存储.class和方法:形如student.class{study();eat();}
3.2)方法只有一份,通过this来区分。

二,成员变量,局部变量:

成员变量
1,类中,方法外
2,new时存在堆中,对象被回收时候消失
3,有默认值
局部变量:
1,方法中
2,调用方法时候存在栈中,方法调用结束的时候与栈针一起消失
3,无默认值

三,继承

1,生活中的继承

钱不用自己挣,也能用(花)

继承皇位:
江山不用自己打,也是你的
继承工作:
工作不用自己找,也是你的
程序中的继承:
代码不用写,也能用

2继承:
1)目的:避免代码重复,有利于代码的重用
2)通过extends实现继承
3)父类/基类中包含所有子类公有的属性和行为
子类/派生类中包含子类所特有的属性和行为
4)子类继承父类后,子类具有:子类加父类
5)一个父类可以有多个子类
一个子类只能有一个父类–单继承。好比一个父亲多亲儿子,一个儿子只有一个亲爸爸
6)继承具有传递性
7)构造子类之前必须要先构造父类
子类构造中如果没有调用父类的构造方法,则默认super()
若自己调了,则不再默认提供
super()调用父类构造,必须位于子类构造的第一句

四,super:

用法:
super.成员变量名----访问父类的成员变量
super.方法名()----调用父类的方法
super()---------------调用父类的构造方法

五.向上造型:

1)父类型的引用指向子类的对象,左父右子
2)能点出什么来,看引用的类型。就是他拥有的变量方法是左边父类有的,而不是看右边的类型
3)左边为引用类型,右边为对象类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值