<Thinking in java 第五章> 初始化与清理

本文探讨了Java中构造器的使用技巧,包括如何在一个构造器中调用另一个构造器,并强调了调用限制及放置位置。同时,深入解析了finalize方法的工作原理及其在垃圾回收过程中的角色,揭示了其不可预知性和潜在风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

P86——构造器中可以用this(arg);来调用另一个构造器,但是却不能调用两个。此外,必须将构造器调用置于最起始处,否则编译器会报错。

 

关于finalize方法的流程:

  当对象变成(GC roots)不可达时候,GC会判断该对象是否覆盖了finalize方法,若未覆盖,则直接将其回收。否则,如对象未执行过finalize方法,将其放入F-Queue队列,由一低优先级线程执行该队列中对象的finalize方法。执行finalize方法完毕后,GC会判断该对象是否可达,若不可达,则进行回收,否则,对象“复活”。

  finalize方法无法预料,常常是危险的,总之是多余的。

下面例子不懂原因。。

 

转载于:https://www.cnblogs.com/ryan1210/p/8459913.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值