簡體   English   中英

關於java.util.concurrent AtomicInteger

[英]About java.util.concurrent AtomicInteger

我在GrepCode遇到了AtomicInteger類的源代碼,並發現了以下代碼片段。

   static {
   try {
       valueOffset = unsafe.objectFieldOffset
       (AtomicInteger.class.getDeclaredField("value"));
    } catch (Exception ex) { throw new Error(ex); }
}
private volatile int value;

靜態塊如何知道實例變量值的偏移量。 加載和鏈接類時的靜態初始化。 所以我們怎么知道類加載時實例值的偏移量。 在類加載后創建對象。 創建對象時,“值”實例變量是否具有固定的偏移量? 請解釋 。

Unsafe.objectFieldOffset()獲取類中已聲明字段的偏移量。 這是類級別的信息。 它與該字段的實例值無關。

偏移量僅用於確定更新AtomicInteger實例的value字段時要尋址的內存位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM