Java面试题-Java基础(⑬)-数组

117 阅读2分钟

Java面试题-Java基础(⑬)-数组

Java面试题专栏---点击进入学习

640 (3).png

1.ArrayList增删改查的方法是什么,LinkedList独有的方法有哪些?

add()

remove()

set()

get()

addFirst()

addLast()

removeFirst()

removeLast0getFirst()

getLast()

2.ArrayList集合的特点 (是否有序,是否有下标,是否线程安全,是否可重复,是否允许为null,扩容多少,增删改查效率)

有序 有下标 线程不安全元素可以重复 元素允许为null 扩容为1.5倍查询 修改效率高删除 添加 效率低

3.Collection和List的关系,List和ArrayList.

LinkedList的关系

List接口是Collection的子接口

ArrayList和LinkedList是List接口的实现类

4.LinkedList数据结构是什么,集合的特点,问题同2

双向链表

有序 有下标 线程不安全 元素可重复 元素允许为null 不需要扩容

添加 删除 效率高

查询 修改 效率低

5. 向上转型如何书写,可以调用哪些方法?

父类引用指向子类对象 可以访问子类继承父类 或者 重写父类的方法

6.泛型的作用

统一集合中的数据类型

7.遍历ArrayList和LinkedList,可以使用哪些方式,有什么注意事项,说明原因

三种遍历方式

1.普通for循环

2.迭代器遍历

3增强for循环

不推荐使用普通for循环 遍历 LinkedList 因为效率低根据下标查询LinkedList中的元素 需要从前往后 或者 从后往前 一直遍历到我们查找的元素

8.LinkedList的get(int index)方法是如何获取到当前集合中的元素的,做了哪些优化

将LinkedList集合长度除以2 如果查找的下标小于长度中间值 则从前往后查找 大于等于中间值 则从后往前查找

9.StringBuffer和StringBuilder 区别两者都是可变字符序列

StringBuffer线程安全

StringBuilder线程不安全

10.ArrayList和Vector的区别?

ArrayList无参构造初始化长度为0数组 第一次添加元素将数组长度修改为10

Vector无参构造初始化长度为10的数组

ArrayList线程不安全 扩容 1.5倍Vector线程安全 扩容2被

11.Collection和Collections的区别

Collection是集合父接口Collections是集合工具类