java集合底层分析
地址:
https://www.bilibili.com/video/av36579083/?spm_id_from=333.788.videocard.9
分析:
这种虚线意味着是一个接口
这些标红的都是我们很常用的很熟悉的实现类
面试的时候必考OOP 面向对象 (封装、继承、多态)
这种就是一说呢,大家都知道,但是要谈理解呢,深浅就不一样了
接口
继承
继承类
通过看源码看到1.7之后的一些新特性
import java.util.ArrayList;
import java.util.List;
List list = new ArrayList();
源码--ArrayList
1.7之后接口的新特性:
这个default是1.8的新特性:本来接口中是不能写方法的,接口中一律只能写抽象方法,不能写方法体,这里做了一个小的更新,default这个关键字能够让方法中能够写方法体。就是说原本是抽象方法,但是加了这个关键字,就可以写方法体了。
Iterable.java这个接口主要用来帮助遍历和迭代的
有List和Set
List下面有一些子实现类,这里主要看
Hash(语义性很强,指的是哈希码的一种算法/数据结构)
这个考的是 基础扎不扎实 数据结构扎不扎实
自己实现的MyArrayList.java
自己实现MyLinkedList.java
ArrayList数组结构:add()会缓慢一点,遍历很快,查数据很快
LinkedList链表结构:add()会很快,遍历慢一点(嵌套循环)