何为友情?就是一见如故,再见如初~
又是一个带着媳妇在外地度过的5·1假期,我今天晚上带着媳妇去吃了新疆大盘鸡,
本应该是开启假期前的快乐时光,现在竟然抬不起来兴趣~,
可能是我年岁逐渐变大了吧~,该来的烦恼都在排队来~
人家都说有两种人会帮助你成长,一种是贵人(可能我遇到过,但是因为种种原因,最终离开了),还有一种是小人;
希望大家能在对的时间做对的事情,哪怕一件小事情~最后23年5·1节日快乐~
Java中你必须知道的内容
筒子们,开始补课,还请各位重踩(共勉)一波~感恩^^!
Java集合UML类图能否画出来?

List有哪几个核心类?稍微也讲下数据结构是什么?
ArrayList:Object数组
Vector:Object数组
LinkedList:双向链表(JDK1.6之前是循环链表,1.7之后取消了循环链表)
Set有哪几个核心类?稍微也讲下数据结构?
HashSet:无序唯一,基于HashMap实现,底层采用HashMap来保存元素
LinkedHashSet:是HashSet的子类,其底层采用LinkedHashMap来保存元素
TreeSet:有序唯一,红黑树(自平衡的排序二叉树)
Queue有哪几个核心类?讲下数据结构?
PriorityQueue:Object数组实现二叉堆
ArrayQueue:Object数组 + 双指针
ArrayList和Vector区别?ArrayList和LinkedList区别?
ArraysList是线程不安全的数组结构,适合按索引查找,Vector是线程安全的数组结构;
ArrayList和LinkedList不保证线程安全,ArrayList默认插入元素是追加在最后一位,并且由于数组容量在创建时设置为默认值,这个样子也存在另外一个问题就是扩容的时候是把原数组copy到新数组,这一部分也存在性能损耗;LinkedList采用链表存储,如果在头部/尾部添加元素,时间复杂度是O(1),如果在中间某位置添加选择,时间复杂度是O(n),无法实现随机元素的访问,只能遍历找到具体某值,反观ArrayList由于实现了RandomAccess接口,支持按照序号直接访问元素
Comparable和Comparator区别
实际都是实现排序的接口,只是包不一样(Comparable是java.lang包,Comparator是java.util包)
HashSet和LinkedHashSet还有TreeSet区别
HashSet&LinkedHashSet&TreeSet都是Set接口的实现类,并且都是线程不安全的保证Key唯一的数据结构;
它们的底层数据结构存在不同,HashSet是哈希表,LinkedHashSet是链表和哈希表,元素的插入取出顺序满足FIFO,TreeSet底层结构是红黑树,元素是有序的,可人工排序或默认排序
Queue和Deque的区别?
Queue是单端队列,只能从一端插入元素,另一端取出元素,实现上遵循FIFO原则
Deque是双端队列,队列的两端均可以插入/删除
ArrayDeque和LinkedList区别?
都实现了Deque接口,两者都有队列的功能,ArrayDeque是数组和双指针来实现,LinkedList是链表实现;
ArrayDeque不支持存储null数据,但LinkedList支持
ArrayDeque可能在插入的时候存在扩容操作,但是均衡下来时间复杂度是O(1),LinkedList在每次插入的时候都需要申请新的堆空间,均衡下来性能相对慢一点
PriorityQueue你是怎么理解的
与常规Queue主要增加了元素优先级的能力,利用了二叉堆的数据结构来实现,底层使用了可边长的数组来存储数据
HashMap和HashTable区别?
HashMap线程不安全,相对效率高,key和value可以存储null;HashTable线程安全,通过sycn关键字修饰,相比而言效率低,不允许存储null,否则会抛出npe
HashMap和HashSet区别
实现类不同,HashMap是实现了Map接口,HashSet实现了Set接口;
存储数据不同,HashMap存储的是键值对,HashSet存储的是对象;
HashMap和TreeMap区别
留着吧,下次再来写~
步四小结
哎,这些基础内容,真的要知道下,不要每天都在curd~