java中容器试题_Java(容器)面试题分享

原标题:Java(容器)面试题分享

温故而知新:温习学过的知识进而又能从中获得新的理解与体会。我们在学习技术的时候,也要时常回头复习一下之前学习过得知识,那么Java容器中的知识点你都掌握了吗?

1、Java 容器都有哪些?

答:数组,String,Java.util下的集合容器。

2、Collection 和 Collections 有什么区别?

答:1、Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。

2、Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

Collections 是一个包装类,Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许,一些 collection 是有序的,而另一些则是无序的。

3、List、Set、Map 之间的区别是什么?

答:List与Set都继承于Collection,List序列的形式存储元素。所以取出来的顺序可能和放入顺序不同。Set的特点是无法存放重复的元素。Map一个映射不能包含重复的键;每个键最多只能映射一个值。以键值对存放数据以上三个都是接口且不能被实例化。

4、HashMap 和 Hashtable 有什么区别?

答:Hashtable:

(1)无论是key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个Hashtable,效率低

(2)初始size为11,扩容:newsize=oldsize*2+1

Hashmap:

(1)可以存储null键和null值,线程不安全

(2)初始size为16,扩容:newsize =oldsize*2,size一定为2的n次幂

5、如何决定使用 HashMap 还是 TreeMap?

答:TreeMap的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现也是基于红黑树结构。

而HashMap的Key值实现散列hashCode(),分布是散列的均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。

大多情况下HashMap有更好的性能,所以大多不需要排序的时候我们会使用HashMap.

6、ArrayList 和 LinkedList 的区别是什么?

答:1、ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。

2、对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

3、对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

7、ArrayList 和 Vector 的区别是什么?

答:1、同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的数。

2、数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半。

如果涉及到堆栈,队列等操作,应该考虑用Vector,如果需要快速随机访问元素,应该使用ArrayList。

学习过知识后,再通过面试题来复习自己学过的知识,也是一种帮助自己梳理知识点并查缺补漏的好方法。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值