Java面试宝典题目大全--集合框架篇(附答案)

 

1、介绍JAVA集合框架的结构?

答案:

 

2、Collection框架中实现比较,要实现什么接口?
答案:Comparable/Comparator


3、ArrayList和Vector的区别?
答案:这两个类都实现了List接口,都是有序集合,即集合中的元素的位置是有顺序的,可以按位置索引号取出某个元素,并且其中的数据是允许重复的,相当于一种动态的数组。
ArrayList与Vector的区别,这主要包括两个方面:
(1)同步性:
Vector是线程安全的,也就是说是它的方法之间是线程同步的,而ArrayList是线程序不安全的,它的方法之间是线程不同步的。如果只有一个线程会访问到集合,那最好是使用ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们自己再去考虑和编写线程安全的代码。
(2)数据增长:
ArrayList与Vector都有一个初始的容量大小,当存储进它们里面的元素的个数超过了容量时,就需要增加ArrayList与Vector的存储空间,每次要增加存储空间时,不是只增加一个存储单元,而是增加多个存储单元,每次增加的存储单元的个数在内存空间利用与程序效率之间要取得一定的平衡。Vector默认增长为原来两倍,而ArrayList的增长策略在文档中没有明确规定(从源代码看到的是增长为原来的1.5倍)。ArrayList与Vector都可以设置初始的空间大小,Vector还可以设置增长的空间大小,而ArrayList没有提供设置增长空间的方法。


4、HashMap和Hashtable的区别?
答案:HashMap是Hashtable的轻量级实现,都实现了Map接口。
主要区别在于HashMap允许空的键和值,而Hashtable不允许。
HashMap是非线程安全的,而HashTable是线程安全的。因此在只有一个线程访问的情况下,效率要高于Hashtable。
HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类,是Java1.2引进的Map接口的一个实现。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。


5、List 和 Map 区别?
答案:一个是存储单列数据的集合,另一个是存储键值对的双列数据的集合,List中存储的数据是有顺序,并且允许重复;Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的。


6、List, Set, Map是否实现Collection接口?
答案:List,Set是,Map不是。


7、List、Map、Set三个接口,存取元素时,各有什么特点?
答案:List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,key不能重复、value可重复。


8、两个对象值相同x.equals(y) == true,但却可有不同的hash code,这句话对不对?
答案:对。
如果对象要保存在HashSet或HashMap中,它们的equals相等,那么它们的hashCode值就必须相等。
如果不是要保存在HashSet或HashMap,则与hashCode没有什么关系了,这时候hashCode不等是可以的,例如ArrayList存储的对象就不用实现hashCode,当然,我们没有理由不实现,通常都会去实现的。


9、说出一些常用的类,包,接口,请各举5个?
常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer java.util.Date,System,Class,List ,HashMap
常用的包:java.lang java.io java.util java.sql ,javax.servlet,org.apache.strtuts.action,org.hibernate
常用的接口:Remote List Map Document NodeList ,Servlet,HttpServletRequest,HttpServletResponse,Transaction(Hibernate)、Session(Hibernate),HttpSession




更多信息请查看 java面试题  http://www.itchm.com/zhaopinqiuzhi/java_bishi_mianshi/

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值