自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (4)
  • 收藏
  • 关注

原创 一道面试题引发的spring源码阅读

前言最近读到一道面试题,谈谈spring的实例化,比如一个类有多个构造方法的话,spring该选择哪个构造方法来进行实例化呢正文开始spring的实例化过程中会有一步推断构造方法的方法,但是要知道,spring是个非常复杂的框架,对于这个面试题,为了避免篇幅过长,我就不从spring容器初始化开始说起了,这里我就画一下从实例化单例对象方法开始直到推断构造方法的调用链,然后再来详细的讨论...

2020-04-27 16:32:48 968

原创 记一次mybatis源码阅读和分析过程(2)sqlsession的创建和执行流程、查询执行流程分析

前言上一讲我们分析到了sqlSessionFactory的执行流程,这一次我们来分析sqlsession的创建和执行流程还有查询的执行过程开始我们看这句代码SqlSession sqlSession = sqlSessionFactory.openSession();//这是个接口,就是sqlSession的工厂public interface SqlSessionFact...

2020-04-12 22:11:59 609

原创 记一次mybatis源码阅读和分析过程(1)sqlsessionFactory的创建和执行流程的分析

前言最近在准备换工作,所以开始复习java和常用框架的知识,mybatis框架是工作中常用的一个ORM框架,在复习的过程中,我就简单阅读了一下mybatis的源码,通过debug源码,我更加理解了mybatis的配置原理和映射原理,同时也增强了自己的源码阅读和分析能力开始首先我们新建一个maven工程,引入mybatis和mysql的jdbc驱动<dependencies&...

2020-04-12 17:12:07 417

原创 并发编程的艺术之读书笔记(十六)

前言:上一部分我们学习了java的线程池,这一部分,我们来学习java的Executor框架1. Executor框架简介java多线程程序通常把应用分解成若干个任务,然后使用用户级的调度器(Executor框架)将这些任务映射为固定数量的线程。Executor框架的结构如下任务。包括任务需要实现的接口:Runnable接口或Callable接口 任务的执行,包括任务执行机制的核...

2020-04-04 21:21:58 262

原创 并发编程的艺术之读书笔记(十五)

前言:上一部分,我们简单的学习了java的并发工具类,这部分我们开始学习java的线程池1. 什么是线程池线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。这避免了在处理短时间任务时创建与销毁线程的代价。java中的线程池是运用场景最多的并发框架,几乎所有需要异步或者并发执行任务的程序都可以使用线程池,在开发过程中,合理使用线程池可以带来3个好处...

2020-04-04 17:41:51 251

原创 并发编程的艺术之读书笔记(十四)

前言:上一部分我们一起学习了java中的原子类,这一部分,我们来学习java中的并发工具类1. CountDownLatchCountDownLatch是一个同步工具类,它允许一个或多个线程等待其他线程各自执行完毕后再执行。CountDownLatch通过计数器来实现,CountDownLatch的构造函数接收一个int类型的参数作为计数器,计数器的初始值是线程的数量。每当一个线程执行...

2020-04-04 14:38:58 851

原创 并发编程的艺术之读书笔记(十三)

前言:上一部分,我们一起学习了java中的Fork/Join框架,这一部分,我们来一起学习java中的原子类我们知道当多个线程同时更新一个变量,可能会导致更新不同步的问题,比如变量i=1,有两个线程A和B,A操作i=i+1,B操作i=i+1,预期得到i=3,结果i却等于2,那是因为A和B线程在更新i时拿到的i都是1,这就是多线程导致的不同步问题,为了解决这个问题,我们一般会使用synchr...

2020-04-03 13:22:34 282

原创 并发编程的艺术之读书笔记(十二)

前言:上一部分,我们一起学习了java中的阻塞队列,这一部分,我们来学习Fork/Join框架1. 什么是Fork/Join框架java从1.7开始提供一个用于并行执行任务的框架,是一个把大任务分成若干个小任务,最后汇总小任务的结果得到大任务结果的框架。我们通过Fork和Join这两个单词来简单理解一下Fork/Join框架。Fork就是把一个大任务切分为若干个任务并行的执行,Jo...

2020-04-02 23:01:21 239

原创 并发编程的艺术之读书笔记(十一)

前言:上一部分,我们一起学习了ConcurrentHashMap的概念,部分实现原理及使用,这一部分,我们来学习java中的阻塞队列

2020-04-02 21:13:34 890

原创 并发编程的艺术之读书笔记(十)

前言:上一部分我们一起学习了Condition接口,这一部分我们一起来学习并发包中的ConcurrentHashMap。1. ConcurrentHashMap的实现原理及使用首先我们要知道什么是ConcurrentHashMap,ConcurrentHashMap是一个保证线程安全的高效的HashMap,那么我们为什么要使用ConcurrentHashMap呢,那是因为在并发编程中使...

2020-04-02 15:37:48 956

转载 [转]HashMap多线程死循环问题

正如上篇文中所说,HashMap不是线程安全的,在被多线程共享操作时,会有问题,具体什么问题呢,一直没有个清晰的理解,今天写了个测试程序调了一下,才明白其中道理。主要是多线程同时put时,如果同时触发了rehash操作,会导致HashMap中的链表中出现循环节点,进而使得后面get的时候,会死循环。【关于什么是rehash,读者可以自行去google了】本文主要参考了:http://co...

2020-04-02 10:18:02 1132

原创 并发编程的艺术之读书笔记(九)

前言:上一部分,我们一起学习了可重入锁和读写锁,这部分我们来一起学习Condition接口1.

2020-04-01 23:26:15 226

原创 并发编程的艺术之读书笔记(八)

前言:上一部分,我们学习了同步器的概念及用法,分析了相关源码,这一部分,我们来一起学习可重入锁和读写锁1. 可重入锁可重入锁的意思是同一个线程获得锁之后可以再后续执行过程中再次获得锁而不会造成死锁或阻塞,java中synchronized和ReentrantLock都是可重入锁,这里我们来讨论Lock接口下的ReentrantLock。ReentrantLock重入锁使用lock(...

2020-04-01 13:59:22 850

百度翻译_Setup_1.0.2.exe

百度翻译_Setup_1.0.2.exe

2021-03-12

Mongood-win64.exe

非常好用的数据库可视化软件,可以连接mongodb,功能齐全,界面设计优美,免费,我一直用的这个,蛮好用的

2020-08-26

Another.Redis.Desktop.Manager.1.3.0.exe

好用的国产redis可视化工具,redis一直没什么很好用的可视化工具,要么是全英文的要么就是收费的,这个是免费的,又是国产的,界面全中文,而且做的也好看

2020-03-18

判断手机号运营商

小小的程序,用来判断手机号的运营商,本程序使用C#语言开发的,很简单

2013-08-14

空空如也

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

TA关注的人

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