- 博客(6)
- 收藏
- 关注
原创 MyBatis源码解析
MyBatis源码版本是3.5.14的,流程分这么几个流程:首先分析配置是怎么加载进来的。通过配置的方式,是怎么把一个SQL发送到数据库执行的,怎么把结果拿到封装成一个对象的。走的接口的方式,这个SQL又是怎么执行的。mybatis里面的一级缓存和二级缓存是个什么东西,这个缓存能够做一些什么事情。还有就是我们还要来分析一下mybatis的插件机制,这个插件是怎么玩的,它的原理是怎样的。
2024-10-23 14:56:28
630
1
原创 Thread start0 多线程源码分析
第一步中,虽然new出来了这个worker对象,但是线程还没开始创建。就像工厂 里刚刚招进来一个打螺丝的,这个打螺丝的人刚入职是还没开始工作。2、start()源码进入start()方法。start方法会调用本地方法start0。3、为什么调用start()能启动run()看start方法的注释。总结来说,当调用start方法的时候,会调用start0方法,start0方法是个JNI方法,会调用JVM,JVM最后回调run方法。所以不能直接调用run方法。要通过start0这个JN
2024-09-15 16:54:15
852
原创 Spring ApplicationContext 高级容器源码解析
这里我们来看一下这个beanDefinition是怎么加载到BeanFactory里面的。//加载所有的bean定义配置进入loadBeanDefinitions()方法。@Override//1. 将beanFactory传进去创建一个xml的bean定义读取器,负责读取xml中的bean定义//2. 设置当前的环境信息到读取器里//3. 将当前这个资源加载器,也就是ApplicationContext设置进去//4. 设置实体解析器,将xml最终解析为一些实体。
2024-09-01 16:13:46
1126
1
原创 基础算法(一):回溯算法
回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案。
2024-08-29 14:27:58
990
原创 【LeetCode】TOP100刷题
又因为容器面积取决于最短的边(宽),所以将短的边往内移,容器面积才有可能增大。每遍历一个新元素,判断(已遍历的连续子数组之和)加上(当前元素值),与(当前元素值)比谁更大。从左往右循环,由于是升序,那么元素只能越来越大,若nums[i] < max,记录要调整的最大位置为high。具体在每次搜索中,可以依次尝试相邻未访问格子的字母,只要能和单词对应位置匹配,就继续向下搜索。因此我们的思路就是:贪心的让长最大,然后往里面走,让宽有可能变大,然后面积比较求最大值。先排序,再挨个比较,记录下最大值max。
2024-08-21 10:12:07
592
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人