专业技术帖Java面试常见问题及答案.docx

专业技术帖Java面试常见问题及答案.docx

ID:50991305

大小:60.33 KB

页数:3页

时间:2020-03-17

专业技术帖Java面试常见问题及答案.docx_第1页
专业技术帖Java面试常见问题及答案.docx_第2页
专业技术帖Java面试常见问题及答案.docx_第3页
资源描述:

《专业技术帖Java面试常见问题及答案.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、专业技术帖!Java程序员面试的常见问题及答案DuangDuangDuang,马上就要面试了对不对,很担心面试官会问什么对不对,不要担心,今天小华君就给大家整理一下咱们Java程序员在面试的时候经常会碰到的问题。Java集合框架是Java变成语言的基础,自然也是Java程序员面试过程中的一个重点内容,下边我们就来说一下有关Java集合的常见问题以及答案。1.什么是Java集合API?Java集合API是用来表示和操作集合的统一框架,包括接口、实现类以及帮助程序员完成一些编程的算法。2.Java集合框架的接口有哪些?具体来说,Java集合框架有6个集合接

2、口,最基本的是Collection接口,由三个接口Set、List、SortedSet继承,另外两个接口是Map、SortedMap,这两个接口不继承Collection,表示映射而不是真正的集合。Collection为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java平台不提供这个接口任何直接的实现。Set是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合。List是一个有序集合,可以包含重复元素。可以通过它的索引来访问任何元素,更像长度动态变换的数组。Map是一个将key映射到value的对象.一个Ma

3、p不能包含重复的key。1.Iterator是什么?Iterator接口提供遍历任何Collection的接口。我们可以从一个Collection中使用迭代器方法来获取迭代器实例。迭代器取代了Java集合框架中的Enumeration。迭代器允许调用者在迭代过程中移除元素。2.Iterator和Listlterator的区别是什么?(1)Iterator可以遍历Set和List集合,而ListIterator只能遍历List。(2)Iterator只可以向前遍历,而LIstIterator可以双向遍历。(3)ListIterator从Iterator接

4、口继承,然后添加了一些额外的功能,比如添加一个元素、替换一个元素、获取前面或后面元素的索引位置。3.对比HashMap和HashTable。两者都是用key-value方式获取数据。Hashtable是原始集合类之一(也称作遗留类)。HashMap作为新集合框架的一部分在Java2的1.2版本中加入。它们之间有以下区别:(1) HashMap允许key和value为null,而HashTable不允许。(2)HashTable是同步的,而HashMap不是。所以HashMap适合单线程环境,HashTable适合多线程环境。(3)HashMap提供对k

5、ey的Set进行遍历,因此它是fail-fast的,但HashTable提供对key的Enumeration进行遍历,它不支持fail-fast。(4)HashTable被认为是个遗留的类,如果寻求在迭代的时候修改Map,应使用CocurrentHashMap。4.如何决定选用HashMap还是TreeMap?对于在Map中插入、删除和定位元素这类操作,HashMap是最好的选择。然而,假如你需要对一个有序的key集合进行遍历,TreeMap是更好的选择。基于你的collection的大小,也许向HashMap中添加元素会更快,将map换为TreeMa

6、p进行有序key的遍历。5.在HashTable中上下文同步是什么意思?同步意味着在一个时间点只能有一个线程可以修改哈希表,任何线程在执行hashtable的更新操作前需要获取对象锁,其他线程等待锁的释放。6.哪些集合类提供对元素的随机访问?ArrayList、HashMap、TreeMap和HashTable类提供对元素的随机访问。7.Comparable和Comparator接口的区别是什么?Comparable和Comparator接口被用来对对象集合或者数组进行排序。Comparable接口被用来提供对象的自然排序,我们可以使用它来提供基于单个

7、逻辑的排序。Comparator接口被用来提供不同的排序算法,我们可以选择需要使用的Comparator来对给定的对象集合进行排序。8.与Java集合框架相关的有哪些最好的实践?(1)根据需要选择正确的集合类型。比如,如果指定了大小,选用Array而非ArrayList。如果想根据插入顺序遍历一个Map,需要使用TreeMap。如果不想重复,应使用Set。(2)一些集合类允许指定初始容量,所以如果能够估计到存储元素的数量,可以使用它,就避免了大小调整。(3)基于接口编程,而非基于实现编程,它允许后来轻易地改变实现。(4)总是使用类型安全的泛型,避免在运

8、行时出现ClassCastException。(5)使用JDK提供的不可变类作为Map的key

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。