静态初始化unmodifiableCollection.get保证不可变吗?

Phi*_*hil 6 java collections immutability

静态初始化unmodifiableCollection.get保证不可变吗?

对于:

static final Map FOO = Collections.unmodifiableMap(new HashMap());

多个线程可以使用方法获取而不会遇到问题吗?

即使FOO中的项目无法添加/删除,什么阻止get方法操纵FOO的内部状态以进行缓存等.如果内部状态以任何方式被修改,则FOO不能同时使用.如果是这种情况,java中真正的不可变集合在哪里?

Chr*_*non -1

我建议任何线程操作使用 ConcurrentHashMap 或 HashTable,两者都是线程安全的。