首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“任何对象的默认初始化--在程序的任何其他操作(默认-写入除外)之前发生”意味着什么?

“任何对象的默认初始化--在程序的任何其他操作(默认-写入除外)之前发生”意味着什么?
EN

Stack Overflow用户
提问于 2013-10-01 16:37:33
回答 2查看 201关注 0票数 0

Java语言规范7,第17.4.5节:

代码语言:javascript
复制
5. The default initialization of any object happens-before any other
actions (other than default-writes) of a program.

这到底是什么意思?什么是默认初始化?你能举几个例子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-01 16:45:05

默认初始化是将实例的字段分配给它们各自的默认值。的过程

引用的那个部分告诉您,在调用构造函数之前就会发生这种情况。

票数 1
EN

Stack Overflow用户

发布于 2013-10-01 16:56:06

发生-以前是一个并发术语。从表面上看,它是你所想的,但它超越了这一点。对于非最终的、非易失性的字段,Java并不保证字段值在线程之间通过同步进行同步,除非某些东西建立在关系之前发生的情况。

规范的这一部分意味着访问对象的其他线程将看到默认的初始化值,即使您在构造函数中生成了一个线程。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19121527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档