Java 语言规范 7,第 17.4.5 节:
5. The default initialization of any object happens-before any other
actions (other than default-writes) of a program.
它到底是什么意思?什么是默认初始化?你能提供一些例子吗?
Java 语言规范 7,第 17.4.5 节:
5. The default initialization of any object happens-before any other
actions (other than default-writes) of a program.
它到底是什么意思?什么是默认初始化?你能提供一些例子吗?
Happens-before 是一个并发术语。从表面上看,它意味着你的想法,但它远不止于此。对于非最终的、非易失性的字段,Java 不保证字段值将通过线程同步,除非建立了先发生关系。
这部分规范意味着访问该对象的其他线程将看到默认的初始化值,即使您在构造函数中生成了一个线程。
默认初始化是将实例的字段分配给它们各自的默认值的过程。
您引用的那部分告诉您这发生在例如调用构造函数之前。