本文介绍: Vector:线程安全的。ArrayList:线程不安全。—-> 使用同步机制处理。HashMap:线程不安全。—-> 使用同步机制处理。为了方便计算要添加的元素的底层的索引i。
二、企业真题
1. Java 的泛型是什么?有什么好处和优点?JDK 不同版本的泛型有什么区别?(软*动力)
以集合来举例:把一个集合中的内容限制为一个特定的数据类型,这就是generic背后的核心思想。
后续版本的新特性:
2. 说说你对泛型的了解(*软国际)
集合中是可以存放任意对象的,只要把对象丢进集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。
二、企业真题
2.1 数据结构相关
1. 链表和数组有什么区别?(腾*)
2. 栈是如何运行的?(西*信息技术)
2.2 List集合源码相关
1. ArrayList的默认大小是多少,以及扩容机制(顺*、凡*科技)
2. ArrayList的底层是怎么实现的?(腾*)
3. 在ArrayList中remove后面几个元素该怎么做?(惠*、中*亿达)
4. ArrayList1.7和1.8的区别(拓*思)
5. 数组和 ArrayList 的区别(阿*、*科软)
6. 什么是线程安全的List?(平*金服)
2.3 HashMap集合源码相关
1. 说说HahMap底层实现(新*股份、顺*、猫*娱乐)
2. HashMap初始值16,临界值12是怎么算的(软**力)
3. HashMap长度为什么是2的幂次方(国*时代)
4. HashMap怎么计算哈希值和索引?扩容机制?怎么解决hash冲突?(*软国际、中软*腾)
5. HashMap底层是数组+链表,有数组很快了,为什么加链表?(润*软件)
6. HashMap为什么长度达到一定的长度要转化为红黑树(*度)
7. HashMap什么时候扩充为红黑树,什么时候又返回到链表?(汉*)
8. 在 JDK1.8中,HashMap的数据结构与1.7相比有什么变化,这些变化的好处在哪里?(海*科)
9. HashMap的get()方法的原理?(顺*)
2.4 hashCode和equals
1. hashcode和equals区别?(海*供应链管理)
2. hashCode() 与 equals() 生成算法、方法怎么重写?(阿*校招)
3. 说一下equals和==的区别,然后问equals相等hash值一定相等吗?hash值相等equals一定相等吗?(南*电网、上海*智网络)
2.5 Set集合源码相关
1. HashSet存放数据的方式?(拓*软件)
2. Set是如何实现元素的唯一性?(湖**利软件)
3. 用哪两种方式来实现集合的排序(凡*科技)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。