对象的可触及性

在Java虚拟机的垃圾回收器看来,堆区中的每个对象可能处于以下三个状态之一

 

可触及状态:当一个对象(假定为simple)被创建后,只要程序中还有引用变量引用它,那么它就处于可触及状态

可复活状态:当程序中不再有任何引用变量引用simple对象时,它就进入可复活状态。在这个状态中。垃圾回收器会准备释放它的资源,在释放之前,会调用它的或者其他处于可复活状态的对象的finalize()方法,这些finalize()方法有可能使对象重新转到可触及状态

不可触及状态:执行完finalize()方法后,如果没有使simple对象进入可触及状态,那么simple对象就进入不可触及状态。处于不可触及状态的对象,垃圾回收器会回收内存。

 

 

 

垃圾回收的时间

在程序中可以调用system.gc()或者Runtime.gc()方法提示垃圾回收器尽快的执行垃圾回收操作,但是这也不能保证调用该方法后,垃圾回收线程立即执行回收操作。

 

 

 对象的finalize()方法的特点

(1) 垃圾回收器是否会执行该方法及什么时候执行该方法都是不确定的。

(2) Finalize()方法有可能使对象复活,使它处于可触及状态

(3) 垃圾回收器在执行finalize()方法时,如果出现异常,垃圾回收器不会报告异常,程序继续正常运行

 

具有实例缓存的不可变类

jdk1.5的基本类库中,对一些不可变类,如Integer类做了优化,它具有一个实例缓存,用来存放程序中经常使用的Integer实例。JDK1.5Integer类新增了一个参数,为int类型的静态工厂方法valueOf(int i),它的处理流程如下:

If ( 在实例缓存中存在取值为i 的实例){

       直接返回这个类型

}

Else{

       new 语句创建一个取值为i Integer实例

       把这个实例存放在实例缓存中

       返回这个实例

}              

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值