java集合常见面试题进大厂必掌握---自行整理笔试题

java集合常见面试题进大厂必掌握—自行整理笔试题

1、什么是集合,集合有哪些特点,它与数组的区别
集合就是存储数据的容器;
特点将数据封装成不同的多个对象;
它们两者之间存储的容量不同,数组是固定长度,集合是可变的;内存指向的引用也不同,数组可以存储基本数据类型,但集合只能存储引用数据类型;存储的数据类型也不一样,数组存储类型需保持一致性,但集合可以存储不同数据类型。

2、集合框架使用的好处有哪些,常用的集合框架有哪些
集合框架好处:集合容量可以自增长;现有jdk集合框架可直接拿来调用,易于维护;扩展性、操作性和重复利用性比较高
常用集合框架:map和collection,作为map接口集合的框架包括HashMap、TreeMap、HashTable、ConcurrentHashMap等;collection接口集合框架包括Set接口和List接口,而Set接口实现类有:HashSet、TreeSet、LinkedHashSet等,List接口实现类有:ArrayList、LinkedList、Vector等。

3、List、Set、Map三者之间的区别
List:是有序的插入容器中,元素可以有重复,可插入null值,元素都有索引标识,对应的常见实现类:ArrayList、LinkedList和Vector。
Set:是无序的插入容器,元素不能重复插入,只可插入null一次,常见的实现类:HashSet、LinkHashSet和TreeSet。
Map:是键值对的集合,key值唯一,可无序,value值无序,可重复。

4、哪些集合类是线程安全的
Vector、HashTable常用的集合类是线程安全的,主要是在它们底层加上了线程同步安全锁synchronized;常见的ArrayList、HashMap都是线程不安全的,但它们执行的效率比较高。

5、迭代器Iterator作用,它与ListIterator之间的区别
Iterator作用可以遍历实现Collection接口,取代了以前的Enumeration;
区别:Iterator只能单向遍历,LIstIterator可以双向遍历,即往前往后。

6、List遍历的方式有哪几种,是怎么实现的
For循环遍历,它是通过外部定义的计数器,进行循环遍历读取。
Iterator迭代器遍历,它是面对对象的遍历。
Foreach循环遍历,采用iterator方式实现,不需要显示申明计数器,代表比较简单,但缺乏数据操作,比如添加、删除之类。

7、ArrayList和LinkList之间区别
在查询方面ArrayList比LinkList快,因为ArrayList是动态数组结构,而LinkList是双向线性链表结构,需要移动前后指针;在增加、删除上LinkList比ArrayList快,因为ArrayList在操作数据时,需要影响它们前后索引的下标;在内存占有率上,LinkList比ArrayList占有率上比较大,因为它的存储有两个引用,即前一个指针指向,后一个指针指向。

8、ArrayList和Vector之间区别
ArrayList和Vector都是实现了List接口,在线程安全上,Vector是安全的,同步机制,而ArrayList是非线程安全的,所以导致它比Vector操作数据更快。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值