
Java源码
文章平均质量分 94
鸵鸟番茄酱
打工人的天堂,BUG界的泰斗
展开
-
Mybatis基础-执行流程解析
目录前言Session的获取Mapper的获取接口调用的核心逻辑插件的实现全文总结 前言 在上篇文章中,向大家介绍了Mybatis配置文件的解析过程,分析了框架内部是怎么一步步将文件映射为java对象的,本章我们讲解在调用一个接口时框架内部是如何拿到我们的具体sql,又是如何将结果封装为我们需要的类型,最终展现在我们面前的。 Session的获取 从上篇文章我们知道,解析完成后会生成一个SqlSessionFactory对象,而我们所有的CRUD都需要通过Session会话来进行操作,因此我们需要通过该工厂原创 2021-04-28 17:59:42 · 167 阅读 · 1 评论 -
MyBatis基础-配置文件解析
MyBatis基础-配置文件解析前言Mybatis的配置文件以及相关介绍俯瞰整个流程设计mybatis.xml核心配置文件解析总结: 前言 MyBatis是常见的Java数据库访问层框架,它的前身是 Apache 的开源项目 iBatis。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装,是一个支持普通 SQL 查询,存储过程和高级映射的基于 Java 的优秀持久层框架。在日常工作中,开发人员多数情况下是对底层的原理一知半解。因此带着个人的兴趣,希望从应用及源码的角度为原创 2021-04-28 16:58:46 · 138 阅读 · 0 评论 -
java8-HashMap-resize()详细原理
List item //数组扩容 final HashMap.Node<K,V>[] resize() { //临时数组 HashMap.Node<K,V>[] oldTab = table; //现在的hash表容量,第一次初始化时为0 int oldCap = (oldTab == null) ? 0 : oldTab.length; //现在的扩容临界值 int o...原创 2019-07-09 09:36:08 · 1747 阅读 · 0 评论 -
java8-HashMap-putVal()源码详解
/** * Implements Map.put and related methods. * * @param hash key的hash值 * @param key the key * @param value the value to put * @param onlyIfAbsent 如果为 true, 不改变存在的value * @para...原创 2019-07-09 21:03:14 · 594 阅读 · 1 评论 -
ReetrantLock锁源码解析
(非)公平锁加锁主要方法解析: protected final boolean tryAcquire(int acquires) { //获取当前线程 final Thread current = Thread.currentThread(); //查看AQS的status状态值 int c = getState(); //等于0表示还没有线程占有锁 if (c == 0) { //判断是否有队...原创 2019-08-11 16:35:08 · 243 阅读 · 0 评论