自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot2.x +redis5.x读写分离配置

redis的主从复制我就不赘述了,各大博客都有写怎么配置的,我们来讲SpringBoot怎么配置读写分离:方法应该有多种:可能的实现有利用AOP动态的获取redis连接工厂并注入对应的实例本文的实现比较呆板,读写分离,主redis负责写,从redis负责读,有两个java配置类如下:附加:java Config(java配置类)是Spring的一种编码风格,其他两种编码风格为XML和注解,J...

2019-11-20 20:31:04 3014

原创 深入理解JDK动态代理《从手写模拟到源码剖析》

目录  一.java代理模式的实现  二.手写模拟JDK动态代理  三.JDK动态代理源码剖析正题一、java代理模式的实现  1.java中代理模式的实现方式java代理分静态代理和动态代理,java静态代理实现有两种:继承,聚合。java动态代理实现有两种:JDK动态代理,CGLIB代理。  2.静态代理和动态代理的主要区别和特...

2019-11-13 14:54:50 521

原创 关于JDK7HashMap多线程场景下扩容死循环问题的原因以及JDK8的解决方案

JDK7中HashMap扩容出现死循环的本质原因是,这个集合不是线程安全的,共享变量Node结点访问出错,当前线程在扩容到槽中最后一个节点B时,由于其他线程将最后一个节点B的next引用置成了A(下图),被当前线程看到了(实际情况是,没有同步措施的情况下,当前线程可能看到,可能看不到,和线程何时将自己本地内存的值刷新到主存有关,这里涉及JMM模型和内存可见性,如有不懂请百度),导致了当前线程多执行...

2019-11-14 20:44:23 558

原创 一张图简单的解释AOP思想

2019-11-06 19:56:17 237

原创 关于ThreadLocal的使用可能造成的内存泄露以及避免方案以及为什么使用弱引用

我们知道,每个Thread类中有一个ThreadLocalMap类型的threadLocals变量,即每个线程中都有一个自己的map,map中的key为ThreadLocal实例,value为要存储的值我们查看该Map的结构,发现里面有个内部类Entry,此Entry类型是构成map的结点结构,类似HashMap中的Node一样。我们在此发现一个问题,发现Entry中的key没有显式声明,...

2019-11-04 14:32:42 712

原创 JDK8中HashMap链表转红黑树的阈值为什么选8?为什么用红黑树做优化?

为什么会引入红黑树做查询优化呢?在平常我们用HashMap的时候,HashMap里面存储的key是具有良好的hash算法的key(比如String、Integer等包装类),冲突几率自然微乎其微,此时链表几乎不会转化为红黑树,但是当key为我们自定义的对象时,我们可能采用了不好的hash算法,使HashMap中key的冲突率极高,但是这时HashMap为了保证高速的查找效率,就引入了红黑树来优化...

2019-11-03 21:33:18 8778 7

空空如也

空空如也

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

TA关注的人

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