public V put (K key ,V value){
if(table==EMPTY_TABLE){
inflateTable(threshold);
}
/**这里是采用PutForNullKey处理null值null键*/
if (key == null)
return putForNullKey(value);
由于HashMap没有Synchronize,所以存在线程安全问题
HashTab:不会处理,在源代码中,发现value为null,就抛出null异常;
但是有Synchronize修饰,不存在线程安全问题;
他的hash冲突算法是:
(hash&0X7FFFFFFF)%tab.length:
好比值为16;取值就在0~15之间;
public Synchronize v put (K key,V value){
if(value==null){
thorw new NullPonterException()
}
}