自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IDEA 2021.3.2 使用教程

IDEA 2021.3.2 使用教程

2022-02-28 17:19:42 794

原创 SpringBoot(基于2.3.0.RELEASE)源码分析(一)

SpringApplication入口类分析,事件广播机制,环境对象创建,环境属性解析,环境属性占位符解析

2020-05-31 14:12:09 948

原创 阻塞队列之PriorityBlockingQueue实现算法详解

1. 简介PriorityBlockingQueue阻塞队列可以进行排序,并且可以自行传入比较器进行排序。举个例子,比如我们往这个队列中先后存放了5、10、1、3这4个int值,存放完之后,我们进行取的操作,首先会取到的是1,然后依次是3、5、10,将会按照顺序取出;再比如我们存放的是User对象,我们还可以让User实现Comparable接口,按照我们自定义的排序规则进行依次取出。本文...

2019-01-14 00:04:12 577

原创 AbstractQueuedSynchronizer中条件(Condition)等待(await)、通知唤醒(signal)实现的源码分析

1. 概述在AbstractQueuedSynchronizer中,有两个FIFO队列,一个是同步队列,用来排队申请同步状态,还有一个是条件等待队列,当调用了await()系列的方法后,就会在等待队列尾部插入一个节点,通知唤醒的时候会把这个节点从等待队列转移到同步队列。本文主要描述条件等待队列以及等待、通知机制的实现,关于同步队列的相关操作和实现分析,可以在这篇博客了解。2. 分析...

2019-01-07 18:31:19 1048

原创 从AbstractQueuedSynchronizer到ReentrantLock中独占锁、公平锁、非公平锁源码分析

1. 整体介绍AbstractQueuedSynchronizer这个类可以理解为是一个同步器,ReentrantLock、ReentrantReadWriteLock都是基于它来实现锁的获取、释放,和synchronized关键字不同的是,AbstractQueuedSynchronizer直接在代码层面实现了锁机制。2. AbstractQueuedSynchronizer分析2....

2019-01-06 17:51:23 347 4

原创 springboot定时任务源码解析

我们在开发的时候经常会用到 @Scheduled 这个注解,通过这个注解我们可以使用spring自带的轻量的定时任务功能。我们还可以自行扩展,来实现动态增加定时任务、取消任务,配置线程池大小等等一系列需求。1. 分析源码从哪里开始看呢?首先,我们使用spring自带定时任务的时候会加上 @EnableScheduling 注解,只有使用了这个注解之后,定时任务才会生效。我们就从这里开始...

2018-12-28 21:57:44 2812

原创 Java主流垃圾收集器(GC)总结

1. Serial收集器首先Serial是一种单线程的、独占式的收集器,在执行垃圾回收时,所有的Java应用程序线程将会暂停,等待回收完成,这种造成所有Java应用线程暂停的情况,就是经常提到的STW(stop the world)。Serial收集器作用于年轻代,采用的是复制算法来进行回收。在早期的低版本JDK中,由于受制于当时的CPU速度(没有那时候CPU速度没有现在这么快),在单个C...

2018-12-18 23:10:45 859

原创 java垃圾标记算法和垃圾回收算法总结

标记算法用于区分存活对象和死亡对象(垃圾标记阶段),垃圾回收算法用于执行垃圾的回收(清除阶段)。1.两种主流的垃圾标记算法1.1 引用计数法       对于一个对象A,只要有任何一个对象引用了A,则A的用用计数器就加1,当引用失效时,引用计数器就减一。只要计数器的值为0,说明该对象A不再被使用,即引用失效。该算法的优势在于,不用等到内存不够用时才进行垃圾回收,完全可以在赋值操作的...

2018-12-16 19:21:53 1364

原创 事务隔离级别以及@Transactional注解中的验证

1.概述事务隔离级别一共有4种,分别为:READ UNCOMMITTED(读未提交)、READ COMMITTED(读已提交)、REPEATABLE READ(可重复读)、SERIALIZABLE(串行化),并发随着等级的提高而降低,mysql默认隔离等级为REPEATABLE READ。READ UNCOMMITTED会产生脏读、不可重复读、幻读。READ COMMITTED解决了脏...

2018-11-13 14:48:27 430

原创 MyBatis、MyBatisPlus多数据源集成shardingJdbc

1.介绍本篇的数据源是指,一个核心业务库、一个订单明细库,两个库没有重复的表,核心业务库没有任何分表策略,订单明细库将使用shardingJdbc进行分表管理。数据访问层采用MybatisPlus,说一下MybatisPlus,它只是一个Mybaits上的插件,具体配置的时候和Mybatis基本一致。2.依赖主要依赖就是下面这两个starter <depe...

2018-11-09 15:44:59 7529 4

原创 springcloud2.X核心组件搭建教程(eureka、config、stream、feign、hystrix、zuul)

1.基于springboot2.0.5,springcloud2.X(Finchley.SR1),本文会先搭建一个简单的springcloud示例,包括feign、hystrix、zuul、springcloud-config、springcloud-stream这些的整合。2.项目模块说明eureka-server 注册中心config-server 配置中心user-servi...

2018-10-14 21:03:05 5898 2

原创 springboot使用JPA集成sharding-jdbc进行分表

1. 本文目标1.1 使用sharding-sphere提供的 sharding-jdbc-spring-boot-starter 分表组件去和JPA项目集成。1.2 实现自己的分表算法(使用行表达式取模+自定义算法两种)。1.3 分库本文不做研究,原理都一样。2. 项目搭建application.properties:spring.jpa.hibernate.ddl-a...

2018-09-04 10:08:05 18193 5

原创 springboot打包成war,由于log4j2 starter使用不当而引发的memory leak排查解决

背景公司有个springboot项目,需要打包成war发布到tomcat,无意间看了一验tomcat日志,发现在shutdown过程中有一些异常信息,如下:27-Jun-2018 08:46:42.332 WARNING [mainApp.com-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReference...

2018-06-29 00:28:12 5416 5

原创 spring cloud之eureka高可用集群和服务分区

1.准备1.首先,在C:\WINDOWS\System32\drivers\etc\hosts文件里面添加一下映射,如果不添加也没关系,只是如果是单机环境,在eureka首页中的replicas那一项看到的其它注册中心都是localhost,我这里为了方便理解就添加了映射。2.为了方便理解,我这里是单个application用一个module,没有采用通过多个profile开启多个ap...

2018-06-24 15:10:28 4709 6

空空如也

空空如也

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

TA关注的人

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