【发布时间】:2014-03-07 14:08:13
【问题描述】:
我明白了
- 静态字段属于/关联到 CLASS 类型
- 该类的所有对象都使用它
- 如果该类由同一个 JVM 中的两个不同的类加载器加载,那么我们可以有两个副本。
有什么方法/场景可以让我拥有两个具有不同值的静态副本?
【问题讨论】:
-
是的,如果你有两个类加载器,根据第 3 点。
-
此外,当多线程处理时,对变量的值更改可能不会立即对另一个线程可见。所以在某种程度上,静态字段可以同时有 2 个值(在不同的核心缓存中)
-
真的不是两份。考虑两个类 B 和 D 的情况,它们都有一个静态字段 foo。我们会说我们有两个 foo 副本吗?当然不是,当我们有两个加载器加载“相同”的类时,情况也是如此:这两个类被视为与 B 和 D 不同。
标签: java oop static classloader permgen