自定义博客皮肤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)
  • 收藏
  • 关注

原创 使用 Spring Cloud Gateway 替换 Zuul 实现接入 WebSocket 教程

文章转载自:https://www.bl-blog.com/a/9/27前言之前的项目使用的是Zuul网关,有个需求需要用到WebSocket,所以一直在查Spring Cloud Zuul 转发 WebSocket请求的教程和文章,查来查去,发现不行,Zuul对WebSocket的支持不是很友好。总结下来就是以下几点:高版本的websocket在第一次http请求后,使用的是更快速的t...

2020-01-13 16:57:20 7867 5

原创 HashMap原理解析

文章目录一、hashmap的数据结构二、hashmap用了hash为什么还要equals三、hashmap中put方法的过程四、负载因子是什么五、hash冲突有什么解决方式六、hashmap为什么在jdk1.8后引入了红黑树?为什么不一直使用?七、为什么hashmap的容量必须是2的n次幂1. 为什么不直接用 key 的 hashCode?2. 为什么要把低位变得不一样呢?八、红黑树特点九、hashmap扩容机制一、hashmap的数据结构底层数组+单向链表,jdk1.8后,链表长度大于8,并且数组长度

2021-10-29 11:19:26 1174

原创 JAVA中的SPI机制

一、介绍SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。Java SPI 实际上是 “基于接口的编程+策略模式+配置文件” 组合实现的动态加载机制。系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里

2021-10-29 10:52:16 627

原创 JAVA 双亲委派机制

java语言中支持4种类加载器:Bootstrap ClassLoader 启动类加载器Extention ClassLoader 标准扩展类加载器Application ClassLoader 应用类加载器User ClassLoader 用户自定义类加载器当一个类收到了一个类加载的请求的时候,他不会直接去加载指定的类,而是把这个请求委托给自己的父加载器去加载,只有父加载器无法加载的时候,才会由当前加载器去负责类的加载。这四种类加载器,各有各的职责:Bootstrap

2021-10-29 10:45:03 179

原创 Mysql的原理解析

一、mysql数据结构mysql使用b+tree为底层数据结构,至于为什么使用b+tree而不使用b-tree和红黑树,我们来分析一下。红黑树:红黑树存储的数据量大的时候,红黑树的节点层数多,也就是树的高度比较高,查找的底层数据时,查找次数就比较多,即对磁盘IO使用比较频繁,还有就是树的每个节点,存放的数据很少,通过计算本来树的每一层大概需要分配16KB的数据。而红黑树所存的数据远远小于16KB,造成空间的浪费。总结一下就是有两个缺点浪费存储空间磁盘读取太频繁(我们知道磁盘读取是很慢的,所以要

2021-10-29 00:03:22 5981

原创 JVM 之逃逸分析

文章目录逃逸分析JVM的执行模式有三种解释模式编译模式混合模式逃逸分析逃逸分析并不是直接的优化手段,而是一个代码分析,通过动态分析对象的作用域,为其它优化手段如栈上分配、标量替换和锁消除等提供依据,发生逃逸行为的情况有两种:方法逃逸和线程逃逸。方法逃逸:当一个对象在方法中定义之后,作为参数传递到其它方法中。线程逃逸:如类变量或实例变量,可能被其它线程访问到。如果不存在逃逸行为,则可以对该对象进行如下优化:锁消除、标量替换和栈上分配。栈上分配:将堆分配转化为栈分配。如果某个对象在子程序中被分

2021-10-13 19:02:56 147

原创 JAVA 内存模型(JMM)

文章目录一、内存屏障1. 内存屏障的作用2. volatile关键字Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。一、内存屏障在CPU中,每个CPU又有多级缓存,一般分为L1,L2,L3。CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找,每个cpu有且只有一套自己的缓存。因

2021-10-13 18:59:26 75

原创 JAVA 设计模式之《单例模式》

单例模式介绍单例模式: 一种对象创建模式,为了确保系统中一个类只创建一个实例。这样的好处是什么呢?对于频繁使用的对象,可以进行复用;减少频繁创建对象和销毁所花费的时间和内存,减少了GC的压力。一个成熟的单例模式要满足以下几点单例类在系统中只能有一个实例单例类必须自己创建自己的实例单例类要提供这一实例给其他对象注:注意单例模式所属类的构造方法是私有的,所以单例类是不能被继承的。单例模式的实现1. 懒汉模式(懒加载-线程不安全)public class SingletonDemo

2021-10-13 18:49:20 211

原创 JAVA 设计模式之《代理模式》

一、代理模式介绍代理模式,非常容易理解,一眼看过去大家都懂,字面意思嘛,如果不懂稍微琢磨琢磨就懂了,这里为了让大家豁然开朗、茅塞顿开、幡然悔悟,咦?这是什么奇怪的词语,不重要了,我在这里举几个栗子???? ,以便更容易理解。贾乃亮作为一个明星,为了更专注于自己的工作,他找了一个经纪人,帮他约综艺、约电视剧、约电影等等。英雄联盟打的太菜了,但是为了冲到更高的段位,在别人面前装装13,于是找了一个代练帮忙上分。背井离乡,来到一个陌生的城市打拼,不知道住在哪里怎么办?我们可以通过中介更快的找到心仪的住所。

2021-10-13 18:38:11 1189

空空如也

空空如也

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

TA关注的人

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