Java----构造器与垃圾回收器随笔

本文深入解析了栈与堆的概念,阐述了类与实例变量在堆上的生存,以及方法与局部变量在栈上的运行机制。详细讲解了构造函数的自动创建与调用过程,以及子类如何通过super()调用父类构造函数。同时,文章还探讨了变量的生存期,包括局部变量与实例变量的生命周期,以及对象生命周期与引用的关系。
摘要由CSDN通过智能技术生成

栈与堆

  • 类和实例变量生存于堆上面
  • 方法和局部变量生存于栈上
  • 栈顶存放的是当前正在执行的方法,执行完弹出

构造函数

  • 自己没有写构造函数时,编译器会自动地帮你写一个构造函数
  • 如果你自己已经写了一个构造函数,则编译器不会再帮你写构造函数
  • 构造函数不能被继承
  • 对于父类和子类,当创建一个子类时,会逐级往上调用父类地构造函数
class grandpa
{
    public grandpa()
    {
        System.out.println("grandpa");
    }
}
class father extends grandpa
{
    public father()
    {
        System.out.println("father");
    }
}
class son extends father{
    public son()
    {
        System.out.println("son");
    }
}
public class test{


   public static void main(String [] args)
   {
            son s=new son();
   }
}

在这里插入图片描述

  • 可以显示地在子类的构造方法里面用super()来调用父类的构造方法
  • 如果不用super(),编译器也会为你自动地调用父类的构造方法
  • 使用super()时必须是子类的方法里面的第一条语句,“孩子不能在父母之前出生”

生存期

  • 方法中的局部变量当方法执行结束时该局部变量也就消失
  • 实例变量的生存期取决于它所存在的对象
  • 对象的生命周期取决于它的引用,若该对象的唯一或者最后一个引用没了,则该对象也将被垃圾回收器回收
    关于引用变量的消失有以下3种情况
    1.A的唯一引用变量又去指向了B
    2.A的唯一引用变量被置为null
    3.对于某个方法中的引用,当该方法执行完毕以后该引用变量也就消失了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodePanda@GPF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值