Java程序员集合框架面试题及答案.docx

上传人:1564****060 文档编号:92386063 上传时间:2023-06-03 格式:DOCX 页数:5 大小:14.87KB
返回 下载 相关 举报
Java程序员集合框架面试题及答案.docx_第1页
第1页 / 共5页
Java程序员集合框架面试题及答案.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《Java程序员集合框架面试题及答案.docx》由会员分享,可在线阅读,更多相关《Java程序员集合框架面试题及答案.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 Java程序员集合框架面试题及答案 1. 什么是Java集合API Java集合框架API是用来表示和操作集合的统一框架,它包含接口、实现类、以及帮忙程序员完成一些编程的算法。简言之,API在上层完成以下几件事: 编程更加省力,提高城程序速度和代码质量 非关联的API提高互操作性 节约学习使用新API本钱 节约设计新API的时间 鼓舞、促进软件重用 详细来说,有6个集合接口,最根本的是Collection接口,由三个接口Set、List、SortedSet继承,另外两个接口是Map、SortedMap,这两个接口不继承Collection,表示映射而不是真正的集合。 interview-qu

2、estions 2. 什么是Iterator 一些集合类供应了内容遍历的功能,通过java.util.Iterator接口。这些接口允许遍历对象的集合。依次操作每个元素对象。当使用Iterators时,在获得Iterator的时候包含一个集合快照。通常在遍历一个Iterator的时候不建议修改集合本省。 3. Iterator与ListIterator有什么区分? Iterator:只能正向遍历集合,适用于猎取移除元素。ListIerator:继承Iterator,可以双向列表的遍历,同样支持元素的修改。 4.什么是HaspMap和Map? Map是接口,Java 集合框架中一局部,用于存储键

3、值对,HashMap是用哈希算法实现Map的类。 5.比照Hashtable VS HashMap HashMap与HashTable有什么区分? 两者都是用key-value方式猎取数据。Hashtable是原始集合类之一(也称作遗留类)。HashMap作为新集合框架的一局部在Java2的1.2版本中参加。它们之间有一下区分: HashMap和Hashtable大致是等同的,除了非同步和空值(HashMap允许null值作为key和value,而Hashtable不行以)。 HashMap没法保证映射的挨次始终不变,但是作为HashMap的子类LinkedHashMap,假如想要预知的挨次迭

4、代(默认根据插入挨次),你可以很轻易的置换为HashMap,假如使用Hashtable就没那么简单了。 HashMap不是同步的,而Hashtable是同步的。 迭代HashMap采纳快速失败机制,而Hashtable不是,所以这是设计的考虑点。 6. 在Hashtable上下文中同步是什么意思? 同步意味着在一个时间点只能有一个线程可以修改哈希表,任何线程在执行hashtable的更新操作前需要猎取对象锁,其他线程等待锁的.释放。 7. 什么叫做快速失败特性 从高级别层次来说快速失败是一个系统或软件对于其故障做出的响应。一个快速失败系统设计用来即时报告可能会导致失败的任何故障状况,它通常用来

5、停顿正常的操作而不是尝试连续做可能有缺陷的工作。当有问题发生时,快速失败系统即时可见地发错错误告警。在Java中,快速失败与iterators有关。假如一个iterator在集合对象上创立了,其它线程欲“构造化”的修改该集合对象,并发修改特别 (ConcurrentModificationException) 抛出。 8.怎样使Hashmap同步? HashMap可以通过Map m = Collections.synchronizedMap(hashMap)来到达同步的效果。 9.什么时候使用Hashtable和HashMap 根本的不同点是Hashtable同步HashMap不是的,所以无论

6、什么时候有多个线程访问一样实例的可能时,就应当使用Hashtable,反之使用HashMap。非线程安全的数据构造能带来更好的性能。 假如在将来有一种可能你需要按挨次获得键值对的方案时,HashMap是一个很好的选择,由于有HashMap的一个子类LinkedHashMap。所以假如你想可猜测的按挨次迭代(默认按插入的挨次),你可以很便利用LinkedHashMap替换HashMap。反观要是使用的Hashtable就没那么简洁了。同时假如有多个线程访问HashMap,Collections.synchronizedMap()可以代替,总的来说HashMap更敏捷。 10.关于Vector类

7、为什么Vector类认为是废弃的或者是非官方地不推举使用?或者说为什么我们应当始终使用ArrayList而不是Vector? 你应当使用ArrayList而不是Vector是由于默认状况下你是非同步访问的,Vector同步了每个方法,你几乎从不要那样做,通常有想要同步的是整个操作序列。同步单个的操作也担心全(假如你迭代一个Vector,你还是要加锁,以避开其它线程在同一时刻转变集合).而且效率更慢。固然同样有锁的开销即使你不需要,这是个很糟糕的方法在默认状况下同步访问。你可以始终使用Collections.sychronizedList来装饰一个集合。 事实上Vector结合了“可变数组”的集合和同步每个操作的实现。这是另外一个设计上的缺陷。Vector还有些遗留的方法在枚举和元素猎取的方法,这些方法不同于List接口,假如这些方法在代码中程序员更趋向于想用它。尽管枚举速度更快,但是他们不能检查假如集合在迭代的时候修改了,这样将导致问题。尽管以上诸多缘由,oracle也从没宣称过要废弃Vector. 【Java程序员集合框架面试题及答案】

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁