底层原理探索
文章平均质量分 93
Java追求者
坚持每天学习!
展开
-
Spring Security之源码剖析
1. 认证源码剖析1.1 doFilter方法AbstractAuthenticationProcessingFilter进入doFilter,判断提交方式是不是post请求,如果是,则进行下一步的认证,否则放行则进入下一个过滤器。调用子类的attemptAuthentication方法获取表单的数据进行验证,返回Authentication。Authentication是用来存储用户认证信息的类Session策略处理(如果配置了用户Session最大并发数,就是在此处进行判断并处理认原创 2021-05-27 23:58:30 · 1353 阅读 · 1 评论 -
SpringBoot之MVC配置原理
1. MVC配置原理途径:1. 阅读源码2. 官方文档官方文档:https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-auto-configuration1.1 分析MVC自动配置原理看看如何自动配置的找到我们熟悉的视图解析器,点击查看ViewResolver发现是一个接口,该方法是用来解析视图的,我们看下它的实现类发现它的有几个实现类,点原创 2021-05-18 22:48:19 · 498 阅读 · 1 评论 -
SpringBoot之初步了解自动配置原理
1. 父依赖pom.xmlspring-boot-dependencies:核心依赖在父工程中我们引入SpringBoot依赖的时候不需要指定版本,就因为有这些版本仓库2. 启动器<!--启动器--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId>原创 2021-05-16 15:20:37 · 120 阅读 · 0 评论 -
初步了解MyBatis执行流程(分析源码)
1. MybatisUtils工具public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resourc原创 2021-04-24 00:45:16 · 256 阅读 · 0 评论 -
HashMap的底层实现
1. JDK1.8 之前JDK1.8 之前 HashMap 底层是 数组和链表 结合在一起使用也就是 链表散列。HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过 (n - 1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。所谓扰动函数指的就是 HashMap 的 hash 方原创 2021-03-13 11:32:44 · 300 阅读 · 0 评论 -
谈谈ArrayList 的扩容机制
1. 谈谈ArrayList 的扩容机制这里以无参构造函数创建的 ArrayList 为例分析1.1 先来看 add 方法 /** * 将指定的元素追加到此列表的末尾。 */ public boolean add(E e) { //添加元素之前,先调用ensureCapacityInternal方法 ensureCapacityInternal(size + 1); // Increments modCount!! //这里看到原创 2021-03-13 00:07:08 · 381 阅读 · 0 评论
分享