《欧柏泰克面试指导:Java程序员集合框架面试题》.doc

《欧柏泰克面试指导:Java程序员集合框架面试题》.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《欧柏泰克面试指导:Java程序员集合框架面试题》.doc

Java程序员集合框架面试题   Java集合框架是最常被问到的Java面试问题,要理解Java技术强大特性就有必要掌握集合框架。下面欧柏泰克JAVA培训和大家分享下常在核心Java面试中问到的一些实用问题:   1、什么是Java集合API   Java集合框架API是用来表示和操作集合的统一框架,它包含接口、实现类、以及帮助程序员完成一些编程的算法。简言之,API在上层完成以下几件事:   ● 编程更加省力,提高城程序速度和代码质量   ● 非关联的API提高互操作性   ● 节省学习使用新API成本   ● 节省设计新API的时间   ● 鼓励、促进软件重用   具体来说,有6个集合接口,最基本的是Collection接口,由三个接口Set、List、SortedSet继承,另外两个接口是Map、SortedMap,这两个接口不继承Collection,表示映射而不是真正的集合。   2、什么是Iterator   一些集合类提供了内容遍历的功能,通过java.util.Iterator接口。这些接口允许遍历对象的集合。依次操作每个元素对象。当使用 Iterators时,在获得Iterator的时候包含一个集合快照。通常在遍历一个Iterator的时候不建议修改集合本省。   3、Iterator与ListIterator有什么区别?   Iterator:只能正向遍历集合,适用于获取移除元素。ListIerator:继承Iterator,可以双向列表的遍历,同样支持元素的修改。   4、什么是HaspMap和Map?   Map是接口,Java 集合框架中一部分,用于存储键值对,HashMap是用哈希算法实现Map的类。   5、HashMap与HashTable有什么区别?对比Hashtable VS HashMap   两者都是用key-value方式获取数据。Hashtable是原始集合类之一(也称作遗留类)。HashMap作为新集合框架的一部分在Java2的1.2版本中加入。它们之间有一下区别:   ● HashMap和Hashtable大致是等同的,除了非同步和空值(HashMap允许null值作为key和value,而Hashtable不可以)。   ● HashMap没法保证映射的顺序一直不变,但是作为HashMap的子类LinkedHashMap,如果想要预知的顺序迭代(默认按照插入顺序),你可以很轻易的置换为HashMap,如果使用Hashtable就没那么容易了。   ● HashMap不是同步的,而Hashtable是同步的。   ● 迭代HashMap采用快速失败机制,而Hashtable不是,所以这是设计的考虑点。   6、在Hashtable上下文中同步是什么意思?   同步意味着在一个时间点只能有一个线程可以修改哈希表,任何线程在执行hashtable的更新操作前需要获取对象锁,其他线程等待锁的释放。   7、什么叫做快速失败特性   从高级别层次来说快速失败是一个系统或软件对于其故障做出的响应。一个快速失败系统设计用来即时报告可能会导致失败的任何故障情况,它通常用来停止正常的操作而不是尝试继续做可能有缺陷的工作。 当有问题发生时,快速失败系统即时可见地发错错误告警。在Java中,快速失败与iterators有关。如果一个iterator在集合对象上创建了, 其它线程欲“结构化”的修改该集合对象,并发修改异常 (ConcurrentModificationException) 抛出。   8、怎样使Hashmap同步?   HashMap可以通过Map m = Collections.synchronizedMap(hashMap)来达到同步的效果。   9、什么时候使用Hashtable,什么时候使用HashMap   基本的不同点是Hashtable同步HashMap不是的,所以无论什么时候有多个线程访问相同实例的可能时,就应该使用Hashtable,反之使用HashMap。非线程安全的数据结构能带来更好的性能。   如果在将来有一种可能—你需要按顺序获得键值对的方案时,HashMap是一个很好的选择,因为有HashMap的一个子类 LinkedHashMap。所以如果你想可预测的按顺序迭代(默认按插入的顺序),你可以很方便用LinkedHashMap替换HashMap。反观 要是使用的Hashtable就没那么简单了。同时如果有多个线程访问HashMap,Collections.synchronizedMap()可以 代替,总的来说HashMap更灵活。   10、为什么Vector类认为是废弃的或者是非官方地不推荐使用?或者说为什么我们应该一直使用ArrayList而不是Vecto

您可能关注的文档

文档评论(0)

mwap + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档