摘要:mybatis的源码有人已经做过一个中文的注释,代码github上有mybatis中文注释源码 mybatis框架有两个非常重要的xml文件,一个是mybatis的config文件,一个就是mapper文件,mybatis会根据config的xml文件去生成一个Configuration类,在这个过
阅读全文
摘要:这边博客衔接上一篇mybatis的xml解析的博客,在xml解析完成之后,首先会解析成一个Configuration对象,然后创建一个DefaultSqlSessionFactory的session工厂。在这一切的准备过程完成之后,就可以开始对数据库的操作了。 首先看openSession()方法
阅读全文
摘要:本文主要介绍Java中,不使用XML和使用XML构建SqlSessionFactory,通过SqlSessionFactory 中获取SqlSession的方法,使用SqlsessionManager管理Sqlsession复用等等..以及相关的示例代码 SqlSession SqlSessions
阅读全文
摘要:准备 在阅读源码前,需要先clone源码 地址:https://github.com/mybatis/mybatis-3 Mybatis框架使用大量常见的设计模式,学习Mybatis源码我们主要学习以下几点: 学习大佬们的编码思想及规范 学习一些传承下来的设计模式 实践java基础理论 带着问题阅读
阅读全文
摘要:1 重点概念 1.1 结点概念 一棵二叉树是节点的一个有限集合,该集合或者为空,或者由一个根节点加上两棵左子树和右子树组成 结点是数据结构中的基础,是构成复杂数据结构的基本组成单位。 1.2 树结点声明 本系列文章中提及的结点专指树的结点。例如:结点A在图中表示为: 2 树 2.1 定义 树(Tre
阅读全文
摘要:ReentrantLock类的大部分逻辑,都是其均继承自AQS的内部类Sync实现的 啥是AQS: Java并发编程核心在于java.concurrent.util包而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如「等待队列、条件队列、独占获取、共享获取」等,而这个行为的抽象就是基于Ab
阅读全文
摘要:深入理解 Java 并发锁 1. 并发锁简介 确保线程安全最常见的做法是利用锁机制(Lock、sychronized)来对共享数据做互斥同步,这样在同一个时刻,只有一个线程可以执行某个方法或者某个代码块,那么操作必然是原子性的,线程安全的。 在工作、面试中,经常会听到各种五花八门的锁,听的人云里雾里
阅读全文
摘要:CAS (Compare and Swap) CAS字面意思为比较并交换.CAS 有 3 个操作数,分别是:内存值 M,期望值 E,更新值 U。当且仅当内存值 M 和期望值 E 相等时,将内存值 M 修改为 U,否则什么都不做。 1.CAS的应用场景 CAS 只适用于线程冲突较少的情况。 CAS 的
阅读全文
摘要:Java创建多线程的几种方式 1、继承Thread类,重写run()方法 //方式1 package cn.itcats.thread.Test1; public class Demo1 extends Thread{ //重写的是父类Thread的run() public void run() {
阅读全文
摘要:JAVA多线程并发容易引发的问题及如何保证线程安全 之前的章节中我们介绍了在并发时,容易引发的问题及如何保证线程安全,本章节我们主讲JAVA并发中的无同步方案: ThreadLocal 无同步方案: 1.可重入代码: **可重入代码:**可以在代码执行的任何时刻中断它,转而去执行另外一段代码,而在控
阅读全文