内存管理
Java中内存由JVM来管理
堆
1.用于存储所有new出来的对象(包括成员变量)
2.成员变量的生命周期:创建对象(new)时存于堆中,对象被GC回收是一并消失
3.垃圾回收器(GC)不定时到堆中查看,看到垃圾则自动回收,回收过程是透明的,并不是看到垃圾就马上回收,若想回收过程迅速些,可以调用System.(gc)
垃圾指没有任何引用所指向的对象
4.内存泄漏:不再使用的对象还没有被及时回收
建议:当对象不再使用时,及时将引用的值设置为null
垃圾回收器(Garbage Collection)是JVM自带的一个线程(自动运行着的程序),用于回收没有任何引用指向的对象
栈
1.用于存储正在调用中的方法的所有局部变量
2.调用方法时在栈中为该方法分配一块对应的栈桢,栈桢中包含所有的局部变量(包括所有参数)
方法调用结束时,栈桢消失,局部变量一并消失
3.局部变量的生命周期:
调用方法时存在栈桢中,方法调用结束时消失
方法区
1.用于存储.class字节码文件(包括方法)
2.方法只有一份
每个对象都有自己的row和col
所有对象共享一个drop()方法,用this关键字区分drop()方法中到底是哪个对象
继承
1.目的:避免代码的重复,有利于代码的重用
2.通过extends关键字实现继承
3.父类(基类):所有子类所共有的属性和行为
4.子类(派生类):子类所特有的属性和行为
4.子类继承父类后,子类具有子类+父类的属性和行为
5.一个父类可以有多个子类,但是一个子类,只能有一个父类
6.继承具有传递性
7.Java规定:构造子类之前必先构造父类,子类构造中若没有调用父类的构造,则默认super();若已调用了,则不再默认提供super();调用父类构造方法,必须位于子类第一句
super关键字
super:指代当前对象的父类对象
用法:
1.super.成员变量名———-访问父类成员变量
2.super.方法名()———-调用父类方法
3.super()—————-调用父类构造方法
注意系统默认的调用super();方法
向上造型
1.父类型的引用指向子类的对象
2.能调出来什么,看引用的类型
父类的引用可以指向子类的对象,但是通过父类的引用只能访问父类所定义的成员,不能访问子类的扩展部分