java 强制 引用传递,java-允许对此引用进行escap

据说此引用在可用时已转义 超出其当前范围。 以下是此方法的常见方法 参考可以转义:

Returning this from a non-private, overridable method that is invoked from the constructor of a class whose object is being

建造。 (有关更多信息,请参见规则MET05-J。请确保 构造函数不会调用可重写方法。) 从可变类的非私有方法返回此值,该方法使调用者可以间接操纵对象的状态。这个 通常发生在方法链实现中;参见规则VNA04-J。 确保对链接方法的调用是原子的,以获取更多信息。 将其作为参数传递给从其对象正在构造的类的构造函数中调用的外来方法。 使用内部类。除非声明了内部类,否则内部类隐式持有对其外部类实例的引用。 静态的。 通过将其分配给正在构造其对象的类的构造函数中的公共静态变量来进行发布。 从构造函数引发异常。这样做可能导致代码容易受到终结器攻击;参见规则OBJ11-J。提防 让构造函数抛出异常以获取更多信息。 将内部对象状态传递给异类方法。这使方法能够检索内部成员对象的此引用。

该规则描述了允许 在对象构造(包括种族)中逃生的参考 条件和不正确的初始化。 例如,声明一个字段 final通常确保所有线程完整地看到该字段 初始化状态 但是,允许此引用转义 在对象构造过程中,可以将该字段公开给其他线程 未初始化或部分初始化的状态。 规则TSM03-J。 不要 发布部分初始化的对象,该对象描述了保证 由各种安全发布机制提供,取决于 遵守这条规则。 因此,程序不得允许 此参考在对象构建过程中转义。

通常,重要的是要发现 引用可能会超出当前上下文的范围泄漏。 在 特别是,公共变量和方法应谨慎 仔细检查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值