- 博客(19)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注

原创 OHara Gateway SPI动态加载机制图解
本文介绍 OHara Gateway 中的 SPI 扩展机制,参自考 Dubbo SPI 实现原理。OHara Gateway 中很多核心模块都依赖 SPI 机制去动态加载对应的扩展实现类。例如:操作符匹配策略(MatchStrategy)、多种缓存插件加载(ICacheBuilder)、多种负载均衡策略加载(LoadBalancer) 等等。
2025-03-06 00:23:31
2171
3

原创 Spring Bean加载耗时采集工具
针对启动慢的 Spring 应用,找出 IOC 容器启动过程中,加载耗时较长的 Bean 对象进行治理。
2024-08-30 14:16:57
5834
4
原创 Java中的128陷阱和new String(“xxx“)创建了几个对象问题
String s = new String("abc") 创建了几个字符串对象?// 答案:1个或者2个Ⅰ 如果字符串常量池中已经有"abc"存在,这种情况只需要新建1个对象,否则就需要新建2个对象。Ⅱ 当字符串常量池没有 "abc",此时会创建如下两个对象: * 一个是字符串字变量 "abc" 所对应的、驻留(intern)在一个全局共享的字符串常量池中的实例,此时该实例也是在堆中,字符串常量池只存放引用。 * 另一个是通过 new String() 创建并初始化的,内容与"abc"相同的实.
2024-09-03 11:06:00
10580
原创 Java中的深拷贝与浅拷贝
深拷贝和浅拷贝区别是什么?数据分为基本数据类型和引用数据类型。基本数据类型:数据直接存储在栈中;引用数据类型:存储在栈中的是对象的引用地址,真实的对象数据存放在堆内存里。浅拷贝:对于基础数据类型:直接复制数据值;对于引用数据类型:只是复制了对象的引用地址,新旧对象指向同一个内存地址,修改其中一个对象的值,另一个对象的值随之改变。深拷贝:对于基础数据类型:直接复制数据值;对于引用数据类型:开辟新的内存空间,在新的内存空间里复制一个一模一样的对象,新老对象不共享内存,修改其中一个对象的值,不会影响另.
2024-09-03 11:05:34
10247
9
原创 notepad++查看二进制.class文件——HexEditor插件(64/32位)安装教程
notepad++查看二进制.class文件——HexEditor插件(64/32位)安装教程
2024-09-03 11:03:39
12682
3
原创 Spring静态变量/构造函数注入失败(注入为null)问题的解决方案
Spring静态变量/构造函数注入失败(注入为null)问题的解决方案
2024-09-03 11:03:02
22238
9
原创 @PostConstruct、@DependsOn、@Order注解嵌套使用解决Bean加载优先级问题
@PostConstruct、@DependsOn、@Order注解嵌套使用解决Bean加载优先级问题
2024-09-03 11:02:15
20612
3
原创 SQL踩坑:计算函数or聚合函数的字段平级,导致分辨不出彼此的别名问题
SQL踩坑:计算函数or聚合函数的字段平级,导致分辨不出彼此的别名问题
2024-09-03 10:59:06
11902
5
原创 NIO Selecotr/Channel实现原理解析
目前很多高性能的Java RPC框架都是基于Netty实现的,而Netty的设计原理又离不开Java NIO。本篇笔记是对NIO核心三件套:缓冲区(Buffer)、选择器 (Selector)和通道(Channel),其中后两者实现原理的学习总结。
2024-09-03 10:57:11
15541
39
原创 Spring拦截器获取request请求体中的json数据,并转换成Java对象的解决办法
Spring拦截器获取request请求体中的json数据,并转换成Java对象的解决办法!
2024-09-03 10:55:56
17760
7
原创 NIO Buffer 实现原理
目前很多高性能的Java RPC框架都是基于Netty实现的,而Netty的设计原理又离不开Java NIO。本篇笔记是对NIO核心三件套:缓冲区(Buffer)、选择器 (Selector)和通道(Channel),其中之一的实现原理的学习总结。
2024-09-03 10:34:23
15069
20
IO、通信中间件Netty入门
2020-11-06
MySQL有自己的缓存机制 ,为什么还要用Redis?
2021-06-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人