首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于java.util.concurrent AtomicInteger

关于java.util.concurrent AtomicInteger
EN

Stack Overflow用户
提问于 2016-05-19 11:42:56
回答 1查看 514关注 0票数 2

我在GrepCode上偶然发现了AtomicInteger类的源代码,并找到了以下代码片段。

代码语言:javascript
复制
   static {
   try {
       valueOffset = unsafe.objectFieldOffset
       (AtomicInteger.class.getDeclaredField("value"));
    } catch (Exception ex) { throw new Error(ex); }
}
private volatile int value;

静态块如何知道实例变量值的偏移量。在加载和链接类时进行静态初始化。那么我们如何知道实例值在类加载时的偏移量呢?对象是在类加载之后创建的。当创建任何对象时,"value“实例变量将具有固定偏移量。请解释一下。

EN

回答 1

Stack Overflow用户

发布于 2016-05-19 12:00:07

Unsafe.objectFieldOffset()获取类中已声明字段的偏移量。这是类级别的信息。它与该字段的实例值无关。

偏移量仅用于在更新AtomicInteger实例的value字段时确定要寻址的内存位置。

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

https://stackoverflow.com/questions/37313590

复制
相关文章

相似问题

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