Tag: jls

是在Java中写入易失性的内存屏障

我最近在一次演讲中听到,写入volatile会触发线程写入的每个变量的内存屏障。 这是真的正确吗? 从JLS看来,似乎只有相关变量才会被刷新,而其他变量则不然。 有人知道什么是正确的吗? 能指出我在JLS的具体位置吗?

什么是Java中的捕获转换,谁能给我举例?

我注意到JLS谈到5.1.10捕获转换 ,但我不明白它们是什么。 任何人都可以向我解释/举例吗?

测试最终字段的初始化安全性

我试图简单地测试JLS保证的最终字段的初始化安全性。 这是我写的一篇论文。 但是,根据我当前的代码,我无法让它“失败”。 有人可以告诉我我做错了什么,或者这只是我必须反复运行然后看到一个不幸的时机失败? 这是我的代码: public class TestClass { final int x; int y; static TestClass f; public TestClass() { x = 3; y = 4; } static void writer() { TestClass.f = new TestClass(); } static void reader() { if (TestClass.f != null) { int i = TestClass.fx; // guaranteed to see 3 int […]