java中HashMap和HashTable的区别求比较完整的答案

解决方案 »

  1.   

    The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls.
      

  2.   

    1、HashMap不是线程安全的, 它是是一个接口 ,是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。
    2、HashTable是线程安全的一个Collection,HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
    3、其实最大的不同就是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
      

  3.   

    还有几道,都比较简单(这次是华为哦招聘实习生的)
       c++和java的区别
       java 垃圾回收机制如何工作,何时工作
       双向链表的插入
      

  4.   

     双向链表的插入 不是java的吧!java面向对象没一般不搞指针什么的!c语言到时经常搞这个
      

  5.   

    HashMap线程不安全,效率比较高HashTable 线程安全,但效率低,所以一般建议使用HashMap
      

  6.   

     第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现;
        第二个不同点式Hashtable是线程安全的,而HashMap不是,也因此HashMap得效率要高些。
        第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value,hashTable的key和value都不能为空值。
      

  7.   

    java 垃圾回收机制如何工作 GC
    http://apps.hi.baidu.com/share/detail/14860802这里有java垃圾回收机制的说明。
    至于双向链表。插入删除操作非常方便,只和前后两个元素有关系。