![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码剖析
yxh13521338301
只分享干货的码农
展开
-
通俗易懂的Mybatis工作原理
作为半自动的ORM框架,Mybatis被越来越多的企业接受。搞清楚它的工作原理以及底层实现,对于开发者可事半功倍。很多文章都是使用大批量的源码流程去分析原理。对于有源码阅读功底的开发者,也许还能招架住,但还是不直观。我以前的很多文章都是这么做的,后来有朋友私信建议说,这些文章类似于个人笔记,只能自己阅读,不利于分享,所以,本文将尝试采用通俗易懂的白话文带领大家认识一下Mybatis的工作原理。(PS:大家可以设想,如果自己在开发Mybatis,该如何设计好Mybatis的功能呢?)一...原创 2020-10-15 17:40:41 · 5192 阅读 · 3 评论 -
HashMap1.7源码剖析
源于蚂蚁课堂的学习,点击这里查看(老余很给力)静态内部类1.构造方法2.put(K,V)3.get(k)4.resize()5.总结1.HashMap1.7实际上是基于数组+单向链表的数据结构去存储数据的,而且是使用静态内部类Entry去维护键值对...原创 2020-04-15 15:44:32 · 105 阅读 · 0 评论 -
源码分析ArrayList、LinkedList和Vector
源于蚂蚁课堂的学习,点击这里查看1.ArrayList1.add时根据当前数组的容量和需要添加数据所需要的最小容量比较,判断是否需要扩容,如果需要的话,默认扩容1.5倍,1.5倍不够的话,就扩容至最小容量;然后就此次要添加的数据放入数据对应下标位置,并有效长度+12.remove时,会先去检查数组下标是否越界。然后会根据下标将对应下标位置的之后的数...原创 2020-04-14 17:58:56 · 92 阅读 · 0 评论 -
springboot2.0启动原理源码剖析
源于蚂蚁课堂的学习,点击这里查看1.源码流程原创 2020-04-12 00:20:14 · 536 阅读 · 0 评论 -
springMVC源码剖析其请求执行流程
源于蚂蚁课堂的学习,点击这里查看1.源码剖析以get请求为例2.总结1.当有HTTP请求时,dispatcherServlet将其拦截,按照servlet原理会先进入servlet的service方法2.servlet的service中会根据请求方式匹配对应的do...原创 2020-04-07 14:25:31 · 231 阅读 · 0 评论 -
源码剖析springAOP的执行流程(注解方式启动spring)
源于蚂蚁课堂的学习,点击这里查看1.源码流程2.总结1.@EnableAspectJAutoProxy开启aop2.底层是将AspectJAutoProxyRegistrar注入spring容器3.AspectJAutoProxyRegistrar通过AopConfigUtil...原创 2020-03-31 16:05:40 · 604 阅读 · 0 评论 -
源码剖析Mybatis执行流程
源于蚂蚁课堂的学习,点击这里查看1.源码流程2.总结1.mybatis通过Resources.getResourceAsReader将配置文件加载至IO流中2.通过Sql...原创 2020-03-31 15:01:50 · 142 阅读 · 1 评论 -
spring事务源码剖析(注解方式启动spring)
源于蚂蚁课堂的学习,点击这里查看1.源码流程2.总结1.通过注解EnableTransactionManagement开启事务2.@EnableTransactionManagement底层是将TransactionManagementConfigurationSelector注册至IOC3.TransactionManageme...原创 2020-03-31 09:43:13 · 206 阅读 · 0 评论 -
源码分析springbean的生命周期
源于蚂蚁课堂的学习1.主要剖析注解方式启动spring容器ApplicationContext context = AnnotationConfigApplicationContext(自定义的配置类.class);2.spring容器启动时,对bean进行创建的流程3.总结描述1.通过bean的构造实例化...原创 2020-03-25 14:52:15 · 270 阅读 · 0 评论 -
JDK1.8ConcurrentHashMap源码剖析
源于蚂蚁课堂的学习,点击这里查看(老余很给力)1.源码剖析a.putb.initTable2.总结ConcurrentHashMap的底层原理类似于hashMap8,但它是线程安全的,具体体现1.为数组初始化或扩容时,采用CAS去方式多线程修改共享数据2.为数组index对应的node赋值时,会将node使用同步代码块加锁3.若线程1在扩容,其...原创 2020-04-18 16:33:22 · 365 阅读 · 0 评论 -
浅谈为什么头插法会导致hashmap7扩容死循环而尾插法却不会
源于蚂蚁课堂的学习,点击这里查看(老余很给力)JDK1.7的HashMap在put元素时,如果key不存在,将会创建新的Entry,将其添加addEntry void addEntry(int hash, K key, V value, int bucketIndex) { if ((size >= threshold) && (...原创 2020-04-20 11:33:37 · 5785 阅读 · 7 评论 -
tomcat8原理剖析
源于蚂蚁课堂的学习,点击这里查看(老余很给力)目录结构/bin:二进制文件目录,存放脚本文件/conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件/logs:存放Tomcat执行时的日志文件/work:存放JSP编译后产生的class文件/webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录部署方式1.直接放入到..原创 2020-05-12 13:42:19 · 434 阅读 · 0 评论 -
注解方式启动spring时源码查找其IOC的容器
程序入口public class App { public static void main(String[] args) { AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(SpringConfig.class); String[] names = annotationConfi..原创 2020-05-13 11:25:26 · 166 阅读 · 0 评论