内存处理,堆,栈,方法区

堆:
    1.堆中存储new出来的对象(包括成员变量)
    2.成员变量声明周期:创建对象时存在,对象回收时消失。
    3.垃圾回收器(GC)不定时回收没有引用指向的对象,回收过程透明,想快些回收可调用System.gc
    4.内存泄漏:不被使用的对象未被回收。(建议:对象不被使用时赋值为null)
栈:
    1.用于存储所有的局部变量
    2.调用方法时,栈中分配方法的栈帧,栈帧中包括参数(即局部变量),方法执行结束,栈帧被清除,局部变量也被清除。
方法区:
    1.存储内存的信息(.class及方法)
    2.方法只有一份,通过this区分对象;成员变量是new一次生成一份。
继承:
    1.作用:避免代码的重复
    2.通过extends关键字继承,子类继承父类后将具有本类的成员及父类的成员。
    3.java一个类只能继承一个父类,一个父类可以有多个子类。
    4.java规定,构造子类之前必须先构造父类,若自己不写super,则在子类构造中默认添加super()来调用父类的无参构        造。  
        ****super必须位于子类构造的第一句。
向上造型:
    父类型的引用指向子类型的对象,能点出(例如:a.study)什么看类型,与对象无关。


你可能感兴趣的:(继承,栈,堆,方法区)