java中的hashtable和hashmap区别

来源:互联网 发布:旅行者号 知乎 编辑:程序博客网 时间:2024/05/14 08:03

  今天偶尔看了别人去阿里巴巴的面试题,其中有一道题就是关于题目的,大公司确实不一样啊,对于util包中的考查是不一样。这个问题先问度娘清一色的答案,鸡肋没什么参考价值。

  这两个类度娘笼统的说一个现成安全一个线程不安全。有些方法是的有些方法不是的,size方法,hashcode方法和clear方法就是。在hashtable中描述其大小的变量名为count而在hashmap中是size。这两个类分别也继承了不同的类,前者继承了一个Dictionary后者继承了AbstractMap类,他们都实现了Map接口,其中还有一点就是loadFactor加载因子,在hashtable中的允许修改加载因子的因为源码里面没有添加关键字final,而hashmap中有这个关键字。还有初始化变量threshold也是不同的,在hashtable中声明加了private关键字,而在hashmap中式默认的访问权限。父类Dictionary和AbstractMap两个区别也很大(一个明显代码都多了好多^_^),在AbstractMap中重写了Object的equals和hashcode方法,在AbstractMap中还定义了一个SimpleEntry静态内部类。

0 0