c语言函数dool类型 c语言double函数是什么( 四 )


39、说出ArrayList,Vector, LinkedList的存储性能和特性
答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素 , 但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,
Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可 , 所以插入速度较快 。
40、HashMap和Hashtable的区别
答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口 , 主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable 。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许 。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey 。因为contains方法容易让人引起误解 。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现 。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时 , 不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步 。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异 。
41、heap和stack有什么区别
答:栈是一种线形集合,其添加和删除元素的操作应在同一段完成 。栈按照后进先出的方式进行处理 。堆是栈的一个组成元素
42、Java的接口和C++的虚类的相同和不同处
答:由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性 , 现有的单继承机制就不能满足要求 。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码 。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口 。
43、Java中的异常处理机制的简单原理和应用
答:当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常 。违反语义规则包括2种情况 。一种是JAVA类库内置的语义检查 。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException 。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常 。所有的异常都是java.lang.Thowable的子类 。
43、垃圾回收的优点和原理 。并考虑2种回收机制
答:Java语言中一个显著的特点就是引入了垃圾回收机制 , 使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理 。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域" 。垃圾回收可以有效的防止内存泄露 , 有效的使用可以使用的内存 。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收 。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收 。
44、你所知道的集合类都有哪些?主要方法?
答:最常用的集合类是 List 和 Map 。List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表 。List 适用于按数值索引访问元素的情形 。

推荐阅读