自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 线程池详解---线程复用、线程销毁

1.定义本文是基于jdk1.6对线程池(ThreadPoolExecutor)进行线程池执行Runnable任务主过程的剖析,jdk1.8及更高版本基本原理与1.6类似,但1.6主流程简单,没有进行太多优化,易于学习。在这里我们需要知道一些基本的常识,这是我们进行后续剖析源码的基础。1.1.多态public class People { public void say() ...

2019-10-05 16:29:55 4674 1

原创 mybatis-configuration容器(3)--结果映射器--resultMap

        前面分享到第二个容器typeHandlerRegistry时中间穿插了hashmap的解析.现在回来继续mybatis系列.这一节分享mybatis结果映射的最重要的一个结构ResultMap结构.        前一节分享到typeHandler是用来映射某一个mysql列与java属性映射的处理器.我们的查询语句往往都会查询出很

2021-08-07 16:23:55 259

原创 hashmap源码详解

       java语言除了数组外是没有任何现成的数据结构的,所有的数据结构都是jdk类库提供的,哈希表是一种数据结构,这种数据结构要求读写对应的时间复杂度必须为O(1),为了实现这个目的大家看下jdk大佬们是如何实现的吧,以及从jdk1.8只有做了哪些相应的改进.1.成员变量// 默认初始容量static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;// 最大容量sta

2021-08-01 20:52:51 166

原创 HashMap扩容时的rehash方法中(e.hash & oldCap) == 0详解

        hashmap在resize(扩容)的过程,需要创建一个新的桶数组,然后要将旧的桶数组中的数据重新分配的新的桶数组,其中有个旧数据在新桶数组寻址的过程,代码如下:// 当node的hash值 & 旧容量位 == 0时,这个数据是不需要换桶位置的if ((e.hash & oldCap) == 0) { if (loTail == null) loHead = e;

2021-07-25 17:37:53 1238

原创 mybatis-configuration容器(2)--类型处理注册表--TypeHandlerRegistry

        这个handler的主要功能就是完成mysql的列值与java字段相互转换的处理器。那么这里就会出现两个种不同的的类型。mysql的列类型叫做jdbcType(由jdbc提供);java的字段类型叫做javaType(由jdk提供);首先我们先看一段熟悉的代码public static void main(String[] args) { Connection conn = DriverMan

2021-07-18 20:10:47 446

原创 mybatis-configuration容器(1)--别名注册表--TypeAliasRegistry

​mybatis的别名注册表TypeAliasRegistry,也是mybatis管理的一个别名容器,同样也是存放在Configuration中的.别名的好处就是:当使用时不用再去写类的全限定名(包名.类名),使用简单的类名(全小写)即可.使用多见与以下场景:ResultMap中的type,resultType,ofType,javaType,typeHandler等属性。1.别名的注册1.1.别名注册详解 TypeAliasRegistry为Configuration的成员变量,当初始化Con

2021-07-11 20:56:34 251

原创 git-rebase多次冲突产生原因及解决办法

1.原因​ git rebase需要解多次冲突的原因是因为***本地分支***【master】对文件A进行了n次commit,而别的分支【dev】对文件A进行了1次commit,但是***本地分支***【master】提交的n次commit都与【dev】分支的1次commit有冲突,那么当【master】分支对【dev】分支进行rebase的时候就会产生n次冲突。2.举例2.1.创建git仓库创建git仓库并创建空文件test.txt2.2.创建dev分支2.3.dev分支进行1次com

2020-11-30 09:38:50 14414 3

原创 线程池--线程任务取消剖析

线程池详解

2019-10-05 16:44:54 225

原创 JAVA正则解析Pattern.compile(regex)出现java.util.regex.PatternSyntaxException

斜体样式*@TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新...

2018-12-11 14:40:12 3560

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除