
源码解读
文章平均质量分 92
多加点辣也没关系
一个普通的程序猿
展开
-
IDEA 导入 RocketMQ 源码
最近项目中有个功能需要在本地调试下RocketMQ,所以需要在本地导入RocketMQ的源码并启动,故做此记录,便于回顾问题和与各位同学一起探讨。原创 2024-08-18 16:06:00 · 1327 阅读 · 0 评论 -
IDEA 导入 spring 源码
我们在学习 spring 源码的时候,有时候是需要在阅读源码的时候添加一些代码注释,或者是对源码的一些感悟,如果没有将 spring 的源码导入到 IDEA 中,单纯是通过 Maven 去阅读 jar 的形式是无法添加一些注释信息的,即便可以通过一些比如像这样的插件做到在源代码中添加注释,但还是有局限性的,首先这个插件不允许你更改源码的行数,所以你的私人注释只能写在一行里,其次导入源代码,你可以更改源代码比如说打印一些东西,都是更有助于去理解源码的。原创 2023-05-12 16:47:15 · 6953 阅读 · 1 评论 -
Java-红黑树的实现
数据结构可视化-红黑树因为红黑树中有变色左旋右旋等变化,不是很容易理解,如果能自己对红黑树进行操作,那么这些概念上的东西相对而言就好接受一点了。红黑树是一种自平衡二叉查找树,和AVL 树类似,都是在进行插入和删除时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。红黑树虽然复杂,但它的最坏情况运行时间仍非常好,并且在实践中效率很高,它可以在O(logn)实践内进行查找、插入和删除操作,其性能要优于AVL 树。(1)其节点要么是红色,要么是黑色(2)根节点是黑色的(3)每个叶子节点都是黑色的。原创 2023-04-12 00:14:45 · 1451 阅读 · 2 评论 -
HashMap-源码解读
哈希表哈希桶HashMap红黑树。原创 2023-04-05 19:23:48 · 430 阅读 · 0 评论 -
LinkedList-源码解读
LinkedList链表双队列LinkedList 的底层操作机制。原创 2023-04-03 15:40:31 · 605 阅读 · 0 评论 -
Vector-源码解读
Vector 类实现了一个动态数组。Vector 类的定义说明:它的底层也是一个数组对象,它的方法带有关键字,所以是线程安全的,在开发中,需要线程同步安全的时候,考虑使用。与ArrayList。原创 2023-04-02 12:12:21 · 536 阅读 · 0 评论 -
Java-双向链表的实现
双向链表也称为双链表,是链表的一种,它的每个数据节点都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个节点开始,都可以很方便地访问它的前驱节点和后继节点。可以使用一个head和tail分别指向头部和尾部的节点每个节点由三部分组成:前一个节点的指针prev保存的元素data后一个节点的指针next双向链表的第一个节点的 pre 是 null双向链表的最后一个节点的 next 是 null双向链表在进行增加和删除元素的时候,只需要改变prev和next的指向即可完成相关的操作。原创 2023-04-03 01:18:23 · 1195 阅读 · 0 评论 -
ArrayList-源码解读
ArrayList是List接口的一个实现类,它是程序中最常见的一种集合。在 ArrayList 内部封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList 会在内存中分配一个更大的数组来存储这些元素,因此可以将 ArrayList 集合看作一个长度可变的数组。正是由于 ArrayList 内部的数据存储结构是数组形式,在增加或删除指定位置的元素时,会创建新的数组,效率比较低,因此不适合做大量的增删操作。原创 2023-04-01 12:35:04 · 493 阅读 · 0 评论