《java并发编程实战》读书笔记二 对象的发布与逸出

本文深入探讨了Java中对象发布的概念,强调了发布对象的重要性,并详细介绍了对象逸出的三种常见方式:静态变量引用、非静态方法和this引用逸出。通过对逸出的实例分析,阐述了逸出可能导致的不可预测状态和潜在风险。同时,提出了避免this逸出的安全构造方法,确保对象在完全构造后才被使用。
摘要由CSDN通过智能技术生成

概念

发布(publishing):

发布一个对象的意思是使它能够被当前范围之外的代码所使用。比如将一个引用存储到其他代码可以访问的地方,在一个非私有的方法中返回这个引用,也可以把它传递到其他类的方法中。

逸出(escape):

一个对象在尚未准备好时就将它发布,这种情况称作逸出。

逸出的方式

上边关于逸出的概念讲述的很是模糊,下面列举几个逸出的示例。

第一,通过静态变量引用逸出

public static Set<Secret> knownSecrets;
public void initialize() {
    knowsSecrets = new HashSet<Secret>();
}

上边代码示例中,调用initialize方法,发布了knowSecrets对象。当你向knowSecrets中添加一个Secret时,会同时将Secret对象发布出去,原因是可以通过遍历knowSecrets获取到Secret对象的引用,然后进行修改。

<

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值