Java源码
文章平均质量分 94
鸵鸟番茄酱
打工人的天堂,BUG界的泰斗
展开
-
Mybatis基础-执行流程解析
目录前言Session的获取Mapper的获取接口调用的核心逻辑插件的实现全文总结前言在上篇文章中,向大家介绍了Mybatis配置文件的解析过程,分析了框架内部是怎么一步步将文件映射为java对象的,本章我们讲解在调用一个接口时框架内部是如何拿到我们的具体sql,又是如何将结果封装为我们需要的类型,最终展现在我们面前的。Session的获取从上篇文章我们知道,解析完成后会生成一个SqlSessionFactory对象,而我们所有的CRUD都需要通过Session会话来进行操作,因此我们需要通过该工厂原创 2021-04-28 17:59:42 · 131 阅读 · 1 评论 -
MyBatis基础-配置文件解析
MyBatis基础-配置文件解析前言Mybatis的配置文件以及相关介绍俯瞰整个流程设计mybatis.xml核心配置文件解析总结:前言MyBatis是常见的Java数据库访问层框架,它的前身是 Apache 的开源项目 iBatis。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装,是一个支持普通 SQL 查询,存储过程和高级映射的基于 Java 的优秀持久层框架。在日常工作中,开发人员多数情况下是对底层的原理一知半解。因此带着个人的兴趣,希望从应用及源码的角度为原创 2021-04-28 16:58:46 · 110 阅读 · 0 评论 -
java8-HashMap-resize()详细原理
List item//数组扩容final HashMap.Node<K,V>[] resize() {//临时数组HashMap.Node<K,V>[] oldTab = table;//现在的hash表容量,第一次初始化时为0int oldCap = (oldTab == null) ? 0 : oldTab.length;//现在的扩容临界值int o...原创 2019-07-09 09:36:08 · 1694 阅读 · 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 · 558 阅读 · 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 · 213 阅读 · 0 评论