自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 问答 (1)
  • 收藏
  • 关注

原创 redis故障记录

故障背景需求:定时任务,多线程计算数据并行高并发将结果写入redis故障现象:所有线程假死,定时任务无法从线程池中获取线程来执行。jstack堆栈如下java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000006404ef2d0> (a java.util.concurrent.locks.AbstractQueuedSyn

2021-01-11 14:34:29 410

原创 记dubbo异步调用故障分析

公司之前使用dubbo接口,相关依赖配置在spring-dubbo-consumer.xml中,以如下形式存在 <dubbo:reference id="AService" interface="com.XX.common.api.AService"/>在代码文件中直接用@Resource注解注入。由于有异步需求所以在xml文件中做如下配置<dubbo:reference id="AService" interface="com.XX.common.api.AService"&g

2021-01-08 11:29:29 399

原创 dubbo接口的异步调用

由于公司使用的dubbo版本低于2.7.0。且服务提供方不提供相应异步改造,所以作为服务消费方只能使用RpcContext的方式进行异步调用。主要是在spring-dubbo-consumer.xml文件中进行配置<dubbo:reference id="xxService" interface="com.xx.xx.api.xxService"> <dub...

2020-04-03 10:54:40 398

原创 关于MySQL的多版本并发控制(MVCC)

依照《高性能MySQL》中的说明MVCC是行级锁的一个变种,但他在很多情况下避免了加锁操作,因此开销更低,它实现了非阻塞的读操作以及尽可能少锁定的写操作。MVCC的实现是通过保存数据在某个时间点的快照来实现的,也就是说,同一事务不同时间看到的数据都是一致的,不同事务同一时间看到的数据可能是不一样的。不同存储引擎的MVCC实现不同,典型的有乐观并发控制和悲观并发控制。我们以常用的InnoDB...

2019-12-09 15:35:12 114

原创 TreeSet/HashSet(TreeMap/HashMap) 区别

1、构造函数TreeSet的无参构造函数如下 public TreeSet() { this(new TreeMap<E,Object>()); } TreeSet(NavigableMap<E,Object> m) { this.m = m; }也就是说底层存储数据的是一个TreeMap,TreeMap是由红...

2019-10-09 11:27:43 427

原创 java对象的四种引用分析

1.强引用强引用是我们日常使用最多的引用方式,具体表现形式为创建一个对象并把这个对象直接赋给一个变量,强引用的对象遵循正常的JAVA垃圾回收规则,如果强引用对象大小超过堆内存大小,系统将会抛出异常。看下面的例子public class Test { static final int MB = 1024 * 1024; byte[] b = new byte[4 * MB];...

2019-07-31 15:30:44 137

原创 java基本数据类型集合篇:LinkedList

在之前我们说到过一种特殊的Queue——PriorityQueue,但是我们最常用的Queue应该还要数LinkedList,本文就来看看它的内部实现。我们可以看到,LinkedList类其实是List和Deque(双端队列)的结合,因此功能强大,受到大家的青睐。1LinkedList类本质上只包含四个属性:size表示当前列表长度,first表示头节点,last表示尾节点,以及继承自Ab...

2019-07-25 15:40:00 596

原创 List与Set for each循环remove比较

写这篇文章的原因还是老生常谈的Iterator中调用Collection的remove会出现各种各样的bug的问题。但是List和Set中出现的情形不一样,因此深挖一下并进行比较。首先我们来看现象,此处用最常用的ArrayList和HashSet举例:List1.public static void main(String[] args) { List<Integer...

2019-05-31 16:10:39 368

原创 java基本数据类型:BigDecimal

今天在工作过程中喷到的问题,与BigDecimal这个类型相关。需求上是前端传两个参数,税前金额和税后金额,后端要校验关系是否正确,参数的接收使用BigDecimal类型。两个参数如下所示BigDecimal amount = request.getAmount().divide(new BigDecimal(1.071),2,BigDecimal.ROUND_DOWN);BigDecim...

2019-05-05 17:02:16 2733

原创 java基本数据类型集合篇:PriorityQueue

在刷leecode的23题MergekSortedLists时,看到一种解法是使用PriorityQueue来解决的,官方答案中只有python的代码,尝试了之后发现java中也有PriorityQueue类,因此记录一下对这个类的分析。PriorityQueue类位于java.util包,方法也不多,是一个基于优先级堆的无界优先级队列,队列数据的排序依据于元素自身的比较器或者是在Priorit...

2019-04-16 21:00:19 471

原创 Maven编译时,出现找不到符号

今天在编译项目时出现了找不到符号的错误,在网上找了很久发现解答都大同小异。最后发现是由于多module工程,每个module维护一个pom,最好保持所有子pom的parent version保持与主pom version一致。否则可能会出现找不到包和找不到符号的情况。分析发现应该是git协同中,pull了别人的提交,在merge时,子pom的parent version更新,而主pom的ver...

2019-03-26 17:11:08 1276

原创 一起来看SpringBoot2源码(1)

用了很久的spring全家桶,一直没有时间深入挖掘一下,趁着年关将近,督促自己每天拿出一小时来研究这个工具内部的原理。本文参考了battcn唐亚峰的学习路径,在此表示感谢。1.我们都知道SpringBoot2的故事都是从一个函数开始的:@RestController@SpringBootApplicationpublic class DemoApplication { pub...

2019-01-29 11:09:39 836

空空如也

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

TA关注的人

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