- 博客(19)
- 收藏
- 关注
原创 如何让接口支持时间格式化字符串自动转 LocalDateTime
以上只是简单的讲诉了 Spring 类型转换的使用方法,可以解决的具体问题;我后续将会学习关于 Spring 类型转换的相关组件的内容,可以关注后续文章
2024-08-10 21:00:20
411
1
原创 策略模式+反射泛型参数的应用
实际项目中,对于策略模式,Spring 类型转换服务 ConversionService 以及通过反射获取实现类具体泛型信息的应用
2024-08-10 16:20:31
471
原创 既保证异步消费 ,又保证顺序消费的mq消费方案
从MQ的角度保证顺序,需要保证 生产者-消息队列-消费者 都是一对一的关系;从业务的角度保证顺序,需要在生产消息时指定消息的顺序,消费者再根据消息的顺序,按序消费
2023-05-24 22:14:45
420
原创 为什么双重校验锁(DCL) 还需要 volatile (内存屏障)来保证有序性?
为什么双重校验锁(DCL) 还需要 volatile (内存屏障)来保证有序性 ?
2023-05-19 20:52:27
209
原创 如何证明 Java 代码的重排序
为了提高程序的执行性能和编译性能,计算机和编译器可能会修改程序的执行顺序;修改后在单线程情况下,能保证程序正常运行。以上代码,如果执行顺序与编码顺序一致,就不可能出现 x、y 同时 为0的情况;重排序是指,代码的执行没有按照开发者的编码顺序执行。
2023-05-11 21:36:19
146
原创 从 NullPointerException 看 ConcurrentHashMap 、HashMap 异同
ConcurrentHashMap 的 value 不能为null
2023-03-31 17:29:19
168
原创 Docker 安装 RocketMQ
Docker 安装 RocketMQ1、search 搜索镜像docker search rocketmq2、查看镜像版本curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags\| tr -d '[\[\]" ]' | tr '}' '\n'\| awk -F: -v image='foxiswho/rocketmq' '{if(NR!=NF && $3 != ""){printf(
2021-06-26 09:20:25
223
原创 Java 为什么不是引用传递
一、基本数据类型基本数据类型:调用 modify() 方法时,是从 实参 拷贝了一份数据 给形参;修改 形参 对 实参没有任何影响import lombok.Data;import lombok.experimental.Accessors;public class TransferTest{ public static void main(String[] args) { testInt(); } private static void testInt(
2021-06-21 17:01:31
286
原创 从IDEA 图标中 探索 Property 和 Field 的区别
缘起在用 IDEA 查看源码,通过 structre 窗口查看类结构时;猜测图标p 为成员变量; m为成员方法;f 就不清楚了而后百度之,得 f 为 field 的缩写;P 为 property 的缩写之所以没想到 f 是field ;是因为在我印象中 ,property 和 field 都是指成员变量;没想到 idea 对此有所区分此时想到,才工作时,和一个C#的同时讨论,他说属性和字段是区别的属性是外部可以通过setter 或 getter 访问 成员变量的字段没
2021-05-29 15:52:34
1716
4
原创 需求:对象转Map
思路对象转map,想到的有两种方式反射:获取字段名,组装map对象转 json 再转 map在本人的经验中,用 json 比较多,故在效率优先的工作环境中,选择用 json
2021-04-20 06:25:28
456
原创 MyCat分片规则
MyCat拆分原则(转自MyCat权威指南)达到一定数量级才拆分(800 万)不到 800 万但跟大表(超 800 万的表)有关联查询的表也要拆分,在此称为大表关联表大表关联表如何拆:小于 100 万的使用全局表;大于 100 万小于 800 万跟大表使用同样的拆分策略;无 法跟大表使用相同规则的,可以考虑从 java 代码上分步骤查询,不用关联查询,或者破例使用全局表。破例的全局表:如 item_sku 表 250 万,跟大表关联了,又无法跟大表使用相同拆分策略,也做成了全局 表。破例的全局表必
2021-03-04 16:07:03
138
原创 Spring Boot 自动装配
Spring Boot 自动装配文章目录Spring Boot 自动装配愚见一、自动装配做了什么?二、第三方包的配置类是如何交给 Spring 容器管理的?三、Spring Boot 是如何扫描到第三方包的?引用愚见@Configuration + @Bean 用于注册beanSpring 不会将 第三方的包 注册 为beanSpring 只会管理 当前包 和 子包 里面的类Spring 可以 通过 @Import 注解引入第三方包 里面的类理解自动装配主要需要 解决 以下三个问题一、自
2021-03-04 15:49:08
220
2
原创 Redis 缓存穿透、缓存雪崩、缓存击穿
Redis 缓存穿透、缓存雪崩、缓存击穿文章目录Redis 缓存穿透、缓存雪崩、缓存击穿一、缓存穿透1、什么是缓存穿透?2、造成缓存穿透的场景?3、布隆过滤器(布隆算法)二、缓存雪崩1、什么是缓存雪崩?2、造成缓存雪崩的场景3、Hash 一致性算法三、缓存击穿1、什么是缓存击穿?2、解决方案四、总结一、缓存穿透1、什么是缓存穿透?请求未命中缓存层,直接访问数据库的现象有缓存层就会有缓存穿透,除非数据库的数据 全部 同步到缓存中,否则就一定会存在缓存穿透只能尽量避免 高频 的缓存穿透,不能彻底解
2021-02-17 10:36:42
478
2
原创 Java数据类型和自动拆箱
Java数据类型和自动拆箱文章目录Java数据类型和自动拆箱愚见Java 数据类型前置知识点instanceof 判断变量类型封装类型的equals()方法自动拆箱拆箱装箱原理封装类型常见比较引用愚见整型 默认类型为 int浮点型 默认类型为 double在混合多种数据类型的表达式中,类型会向容量大的值的数据类型提升long + int/shot/byte = longshot/byte + shot/byte = intfloat + float = floatfloat/dou
2021-02-06 15:18:34
405
2
原创 新建并启动线程的四种方式
新建并启动线程的4种方式愚见1、继承Thread2、实现Runnable接口3、匿名类实现Runnable4、lambda表达式愚见Thread类实现了Runnable接口所有新建方式都与Thread对象有关所有的线程启动方式都是Thread.start()方法Thread.run()为线程执行的方法,Thread.start()为线程启动的方法;线程启动后会自动调用run();public class Thread implements Runnable { public Th
2020-05-14 21:28:33
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人