![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码梳理
文章平均质量分 94
西瓜'
这个作者很懒,什么都没留下…
展开
-
源码梳理(5)HashMap的put方法
源码使用的是JDK17HashMap的数据存放简述1 HashMap中存在一个属性名叫table的哈希表,结构类型是数组2 哈希表这个数组,它的每一个下标位置存放的是Node类型的链表的首节点(链表在一定条件下会转为红黑树)3 每一个Node实例都会有key和value的属性值,对应的是HashMap中的一条数据(也可以说一个Node就是一条数据)原创 2024-02-22 17:59:07 · 604 阅读 · 0 评论 -
源码梳理(4)ReentrantLock的lock方法(涉及AQS)
本文主要分析非公平的ReentrantLock实例调用lock方法,源码使用的版本是JDK17。通过内部的Sync同步器尝试获取锁通过AbstractQueuedSynchronizer(抽象队列同步器AQS)获取锁源码中的说明:等待队列是 “CLH”(Craig, Landin, and Hagersten)锁队列的一个变种。CLH 锁通常用于自旋锁。原创 2024-02-21 16:30:44 · 810 阅读 · 0 评论 -
源码梳理(3)MybatisPlus启动流程
这里又通过getSqlSession获取到了一个SqlSession实例,也是真正来执行接口方法(本次示例中是SqlSession的selectList方法)的是实例,先去getSqlSession方法里看看这次获取到的sqlSession又是什么类型,传入的三个参数sqlSessionFactory,executorType,exceptionTranslator都是在构建SqlSessionTemplate时赋值的,后面会分析到的。原创 2024-02-04 10:37:09 · 1132 阅读 · 0 评论 -
源码梳理(2)SpringMVC的执行流程及涉及到的相关组件
FrameworkServlet的service方法,如果是"DELETE", “HEAD”, “GET”, “OPTIONS”, “POST”, “PUT”, "TRACE"方法的请求会交给父类也就是HttpServlet的另一个(参数是HttpServletRequest,HttpServletResponse重载的)service方法,该service方法会根据请求类型,将任务再分发给doGet(),doPost()等方法,而这写方法都被FrameworkServlet重写了。原创 2024-02-01 10:24:12 · 1295 阅读 · 0 评论 -
源码梳理(1)Springboot启动过程中的refreshContext(context) 刷新上下文,实例化Bean
AbstractBeanFactory的doGetBean方法中的getSingleton()方法,该方法的第二参数是一个函数式接口ObjectFactory原创 2024-01-30 14:41:42 · 934 阅读 · 0 评论