![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java源码系列
文章平均质量分 76
个人梳理
无奈朝来寒雨晚来风
林花谢了春红,太匆匆。
无奈朝来寒雨晚来风。
胭脂泪,相留醉,几时重。
自是人生长恨水长东。
展开
-
反射全面详解
/使用反射生成对象 Class原创 2023-03-28 22:32:18 · 373 阅读 · 0 评论 -
ArrayList底层源码解析
ArrayList集合总结:arraylist底层维护了一个Object的数组elementData数组缓冲区,数组缓冲区的长度就是Arraylist的长度,当创建Arraylist时如果使用无参构造则初始化elementData数组的容量为0,当第一次添加元素时会将elementData扩容为10,如果需要再次扩容则扩容elementData的1.5倍。无参构造创建arraylist。原创 2023-03-17 22:18:55 · 734 阅读 · 0 评论 -
Vector底层源码解析
Vector集合总结:Vector实现了List接口,Java1.0版本推出,底层也是一个Object数组elementData,与Arraylist不同的时,Vector是线程安全的,每个方法几乎都有synchronilzed关键字,所以在多线程的情况下,应该使用Vector集合。Vector的数组长度默认是10,满后按照2倍进行扩容,如果制定大小则直接按2倍扩容,除了线程安全和默认10容量与2倍扩容,几乎和Arraylist没有什么区别。提示:以下是本篇文章正文内容,下面案例可供参考集合体系继承图。原创 2023-03-18 15:33:16 · 670 阅读 · 0 评论 -
LinkedList集合源码解析
linkedlist基于双向链表所以增删速度很快,直接让需要加入的元素前指针执行前面节点,后指针执指向后面节点可以轻松完成元素插入。而arraylist基于数组,而数组的长度又是不可变的,所以不适合大量的增删操作。1 LinkedList底层实现了双向链表和双端队列的特点,可以添加任意元素并且可以重复包括null。原创 2023-03-18 19:52:26 · 905 阅读 · 0 评论 -
List集合的选择
List集合该如何选择原创 2023-03-19 12:16:48 · 74 阅读 · 0 评论 -
HashSet集合底层源码解析
set接口的特点是集合存储无序性,没有索引 不允许重复的元素,所以最多一个null。可以使用迭代器增强for循环🔁来进行遍历,增强for底层还是一个迭代器。hashset的底层是数组➕单向链表➕红黑树进行数据的存储,当数组的元素大于等于64,链表元素大于等于8时就会把当前链表变成红黑树。数组进行扩容并不是当数组的长度满足扩容因子计算出的长度,而是数组和链表的所有元素加起来大于扩容因子计算出数组长度就会进行2倍扩容。原创 2023-03-20 10:39:30 · 430 阅读 · 0 评论 -
LinkedHashSet集合底层源码解析
提示:发文三个工作日后这里做全文总结提示:以下是本篇文章正文内容,下面案例可供参考LinkedHashSet是HashSet的实现子类,HashSet是数组加单向链表,LinkedHashSet是数组加双向链表,但是LinkedHashSet底层是一个LinkedHashMap。HashSet存入数据顺序和取出的顺序不一样,但每次遍历取出元素的顺序都是一样的。而LinkedHashSet存入和取出的顺序都是一样的。原创 2023-03-20 20:59:18 · 550 阅读 · 1 评论 -
HashMap源码分析
HashMap源码解析原创 2023-03-21 18:16:53 · 282 阅读 · 0 评论 -
HashTabld底层源码解读
HashTable原创 2023-03-21 22:40:51 · 213 阅读 · 0 评论