fianl static HashMap<> HASH_MAP = new HashMap<>();
这样使用hashmap会有什么影响呢?
第一反应是这个hashmap一旦存进去值,就不能变了。 结果是错的,存进去之后还可以变。
HASH_MAP.put(2,2+"id");
HASH_MAP.put(2,"id"+2);
结果是不报错的。
第二反应是这个hashmap第一次初始化之后,它的各项属性值不能变了,比如说Capacity、size等等。结果还是错的,这些属性还是可以变化。
static final HashMap HASH_MAP = new HashMap<>(16);
public static void main(String[] args){
Class c1 = (Class)HASH_MAP.getClass();
Field[] fs = c1.getDeclaredFields();
for(int j =0;j
Field field = fs[j];
field.setAccessible(true);
Object val = field.get(HASH_MAP);
System.out.println("name:"+field.getName()+"\t value = "+val);
}
System.out.println("------------------------");
for(int i = 0;i&