概述
CSDN话题挑战赛第2期
参赛话题:面试宝典
前言:
第二篇
Java面试宝典
- 题一:说一下 HashSet 的实现原理?
- 题二:ArrayList 和 LinkedList 的区别是什么?
- 题三:如何实现数组和 List 之间的转换?
- 题四:ArrayList 和 Vector 的区别是什么?
- 题五:Array 和 ArrayList 有何区别?
- 题六: 在 Queue 中 poll()和 remove()有什么区别?
- 题七:哪些集合类是线程安全的?
题一:说一下 HashSet 的实现原理?
HashSet底层由HashMap实现
HashSet的值存放于HashMap的key上
HashMap的value统一为PRESENT
题二:ArrayList 和 LinkedList 的区别是什么?
最明显的区别是 ArrrayList底层的数据结构是数组,支持随机访问,而 LinkedList 的底层数据结构是双向循环链表,不支持随机访问。使用下标访问一个元素,ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)。
题三:如何实现数组和 List 之间的转换?
List转换成为数组:调用ArrayList的toArray方法。
数组转换成为List:调用Arrays的asList方法。
题四:ArrayList 和 Vector 的区别是什么?
Vector是同步的,而ArrayList不是。然而,如果你寻求在迭代的时候对列表进行改变,你应该使用CopyOnWriteArrayList。
ArrayList比Vector快,它因为有同步,不会过载。
ArrayList更加通用,因为我们可以使用Collections工具类轻易地获取同步列表和只读列表。
题五:Array 和 ArrayList 有何区别?
Array可以容纳基本类型和对象,而ArrayList只能容纳对象。
Array是指定大小的,而ArrayList大小是固定的。
Array没有提供ArrayList那么多功能,比如addAll、removeAll和iterator等。
题六: 在 Queue 中 poll()和 remove()有什么区别?
poll() 和 remove() 都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,但是 remove() 失败的时候会抛出异常。
题七:哪些集合类是线程安全的?
vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。
statck:堆栈类,先进后出。
hashtable:就比hashmap多了个线程安全。
enumeration:枚举,相当于迭代器。
最后
以上就是自信故事为你收集整理的【Java面试宝典】带你玩转Java题一:说一下 HashSet 的实现原理?题二:ArrayList 和 LinkedList 的区别是什么?题三:如何实现数组和 List 之间的转换?题四:ArrayList 和 Vector 的区别是什么?题五:Array 和 ArrayList 有何区别?题六: 在 Queue 中 poll()和 remove()有什么区别?题七:哪些集合类是线程安全的?的全部内容,希望文章能够帮你解决【Java面试宝典】带你玩转Java题一:说一下 HashSet 的实现原理?题二:ArrayList 和 LinkedList 的区别是什么?题三:如何实现数组和 List 之间的转换?题四:ArrayList 和 Vector 的区别是什么?题五:Array 和 ArrayList 有何区别?题六: 在 Queue 中 poll()和 remove()有什么区别?题七:哪些集合类是线程安全的?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复