说明:"ab"=="ab"是因为编译的时候就把这两个指向同一个常量了,属于编译优化的一部分。但是动态生成的字符串的地址就不一样了。比如String a = buffer.toString(), 但是buffer.append("some")和String b = "some"里两个"some"常量应当是指向同一个地址。
index = (o.hashCode() & 0x7FFFFFFF)%hs.length;这个值对象就会直接放在Hashtable的第index位置,对于写入,这和数组一样,把一个对象放在其中的第index位置,但如果是查询,经过同样的算法,Hashtable可以直接通过key得到index,从第index取得这个值对象,而数组却要做循环比较.所以对于数据量稍大时,Hashtable的查询比数据具有更高的性能。