
源码解析
文章平均质量分 75
程序员阿杜吖
死磕技术,热爱生活!
展开
-
一条SQL语句是如何执行的?
一条sql是如何执行的?原创 2022-04-05 13:47:51 · 1332 阅读 · 0 评论 -
一个全中文注释的迷你Spring。
源码面前,了无秘密原创 2022-03-28 21:57:26 · 1885 阅读 · 0 评论 -
这可能是最细的ArrayList详解了!
手撕ArrayList源码文章首发于GitHub开源项目: Java超神之路ArrayList 简介ArrayList 是一个数组列表。它的主要底层实现是Object数组,但与 Java 中的数组相比,它的容量能动态变化,可看作是一个动态数组结构。特别注意的是,当我们装载的是基本类型的数据 int,long,boolean,short,byte… 的时候,我们只能存储他们对应的包装类。ArrayList 特点元素有序,可重复增删元素的速度慢,每次增加删除元素,都需要更改数组长度、拷贝原创 2021-09-11 18:32:56 · 783 阅读 · 0 评论 -
这可能是最细的HashMap详解了!
手撕HashMap源码文章已同步至GitHub开源项目: Java超神之路HashMap一直是面试的重点。今天我们来了解了解它的源码吧!首先看一下Map的继承结构图源码分析什么是哈希**Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。**这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度原创 2021-09-11 18:32:21 · 521 阅读 · 0 评论 -
手撕HashMap源码
手撕HashMap源码.md文章已同步至GitHub开源项目: Java超神之路HashMap一直是面试的重点。今天我们来了解了解它的源码吧!首先看一下Map的继承结构图源码分析/* * HashMap结构:哈希数组+链表/红黑树,key和value均可以为null * * 存储元素时,需要调用key的hashCode()方法,计算出一个哈希值 * 1.哈希值相同的元素,必定位于同一个哈希槽(链)上,但不能确定这两个元素是不是同位元素 * 在进一步判断key如果相等(原创 2021-09-06 15:25:43 · 191 阅读 · 0 评论 -
手撕源码之ArrayList
手撕ArrayList源码.md文章已同步至GitHub开源项目: Java超神之路ArrayList一直是面试的重点。今天我们来了解了解它的源码吧!首先看一下集合的继承结构图源码分析/** * 首发 Github开源项目: [Java超神之路] <https://github.com/shaoxiongdu/java-notes> * 顺序表:线性表的顺序存储结构,内部使用数组实现,非线程安全 * @param <E> 泛型 */// publ原创 2021-09-01 13:59:58 · 211 阅读 · 0 评论 -
Spring-IOC容器的底层原理
容器的创建和刷新过程Spirng的IOC是Spring的核心之一,容器的创建和刷新主要的流程如下:创建和刷新的过程集中在AbstractApplicationContext类的refresh方法中,该方法定义如下public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { StartupStep contextRefresh =原创 2021-07-24 22:11:36 · 249 阅读 · 3 评论 -
SpringBoot-自动配置-源码解析
SpringBoot自动配置原理解析文章已同步至GitHub开源项目: Java超神之路 SpringBoot的主旨是约定大于配置,开发项目初期阶段,我们不需要做过多的配置,SpirngBoot已经帮我们自动配置好了大部分的内容,比如仲裁依赖机制,自动引入需要的依赖,自动配置等内容。让我们能够将更多的精力放在业务逻辑上,那么,它是如何实现自动配置的呢? 首先我们可以看到,在SpringBoot的启动类上,有一个@SpringBootApplication的注解。 接下来,我们分析这个注解。原创 2021-07-25 22:55:46 · 375 阅读 · 8 评论 -
Spring-REST风格-源码解析
文章已同步至GitHub开源项目: Java超神之路SpringBoot支持的RESTful风格的请求方式,底层是如何实现的呢?准备html<form action="/user" method="POST"> <input name="_method" hidden value="DELETE"> <input type="submit" value="DELETE提交 删除用户信息"></form>Controll.原创 2021-07-26 15:05:29 · 116 阅读 · 0 评论