构造器与垃圾收集器

编写java程序就必须创建对象,早晚得释放它们,否则会出现内存不足的情况。
这一章讨论对象如何创建、存于何处、如何让保存和抛弃更有效率。

堆:存放对象及该对象的实例变量(也称为可垃圾回收的堆)

栈:存放方法及该方法的局部变量(即便是类似duck d=new duck()),d仅为duck的
       引用,栈上存放的是d,因为被赋值之后,duck在堆上占有空间。
       栈顶上的方法是正在执行的方法,执行完后就被释放

构造器:duck d=new duck(),可分为声明、创建、赋值的过程,duck()其实是在
             调用duck的构造函数(编译器会写,也可自己写),因此构造函数的关
             调键特征是能够在赋值给引用变量之前介入。

             构造函数的特点:与类同名且无返回类型,public duck(){},构造函数可有
                                           多个,参数必须不同(顺序不同或类型不同)

             父类构造器:构造函数在执行时,第一件事是执行其父类的构造函数,连
                                 锁反应到object的构造函数。实际上是不断将父类的构造函
                                 数放置于栈顶上,直至object的构造函数位于最顶端,然后
                                 逐个执行后释放。

                                 父类的构造函数必须在子类的构造函数之前结束,因此
                                 super()总是放在子类构造函数的第一行,有参数的父类构造
                                 函数则需要在super、构造函数、创建对象时传入对应类型的
                                 参数。

生命周期:局部变量的范围仅限于声明的方法之内,当方法调用其它方法时,局
                  部变量还活着,且状态被保存下来,活到方法执行完。

                  释放对象的引用中的对象有3种情况,可在方法结束时消失、可被赋值
                  到其他对象后消失、可设定为null后对象消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值