我希望能帮助您理解《Java 并发实践》中的以下内容:
调用可重写的实例方法(既不是
构造函数中的 private 或 Final)也可以允许
这个参考逃避。
- 这里的“转义”是否仅仅意味着我们可能在实例完全构造之前调用实例方法?
我没有看到“this”以任何其他方式逃离实例的范围。
- “最终”如何防止这种情况发生?在实例创建中我是否缺少“最终”的某些方面?
这意味着调用类外部的代码,并传递this
.
该代码将假定实例已完全初始化,如果没有完全初始化,则可能会中断。
同样,您的类可能假设某些方法仅在实例完全初始化后才会被调用,但外部代码可能会打破这些假设。
final
方法不能被覆盖,因此您可以相信它们不会通过this
around.
如果您致电任何非final
构造函数中的方法对于非final
类,派生类可能会重写该方法并传递this
任何地方。
即使当你打电话时final
方法,您仍然需要确保它们被安全地编写——它们不会通过this
任何地方,并且它们本身不调用任何非final
方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)