随笔分类 -  Java

摘要:拿到堆快照,利用MAT工具进行分析 https://eclipse.dev/mat/download/ 参考 https://club.kdcloud.com/article/612243561462691840?productLineId=29&isKnowledge=2&lang=zh-CN 阅读全文
posted @ 2024-12-31 18:09 废物大师兄 阅读(78) 评论(0) 推荐(0)
摘要:1. Thread.UncaughtExceptionHandler UncaughtExceptionHandler‌ 是一个接口,用于处理线程因未捕获异常而突然终止的情况。 虽然,通常都会在线程执行的代码中加try...catch来捕获异常,那么如果某些异常没有被catch住(比如,线程突然死掉 阅读全文
posted @ 2024-12-31 09:51 废物大师兄 阅读(601) 评论(0) 推荐(1)
摘要:滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间段内的请求次数。通过动态地滑动窗口,可以动态调整限流的速率,以应对不同的流量变化。 整个限流可以概括为两个主要步骤: 统计窗口内的请求数量 应用限流规则 Redis有序集合每个value有一个scor 阅读全文
posted @ 2024-12-30 18:11 废物大师兄 阅读(2002) 评论(0) 推荐(1)
摘要:需求:定时任务扫描,反射调用目标对象,但是,方法的传参不是固定的。 方案一:将方法参数存成JSON字符串,然后JSON反序列化成对象,然后反射调用 目标方法时这样的: CommandResp sendXXX(BaseCommandApiDTO<XXX> baseCommandApiDTO); 方式一 阅读全文
posted @ 2024-12-29 11:41 废物大师兄 阅读(952) 评论(0) 推荐(2)
摘要:方法一:用版本号来区分 比如,开发环境上跑的服务版本是1.0.0,那么为了在本地打断点调试某个服务,可以在本地启动,将version设置为2.0.0 服务提供者 @DubboService(version = "2.0.0") public class DemoServiceImpl impleme 阅读全文
posted @ 2023-12-22 17:26 废物大师兄 阅读(822) 评论(0) 推荐(0)
摘要:如图所示,项目中定义了这样几个模块: pdd-workflow-build :定义项目版本,及全局配置 pdd-workflow-dependencies :外部依赖管理,统一管理所有用到的外部依赖的版本 pdd-workflow-service :项目service模块 pdd-workflow- 阅读全文
posted @ 2023-12-06 15:50 废物大师兄 阅读(2956) 评论(0) 推荐(0)
摘要:1. 依赖管理 依赖管理,可以将有关依赖项的所有信息放在共同的POM中,并对子POM中的工件进行更简单的引用。举个例子: 父POM <project> ...... <dependencyManagement> <dependencies> <dependency> <groupId>group-a 阅读全文
posted @ 2023-11-29 19:27 废物大师兄 阅读(531) 评论(1) 推荐(0)
摘要:https://www.oracle.com/java/technologies/ https://www.oracle.com/java/technologies/downloads/archive/ https://www.oracle.com/java/technologies/javase/ 阅读全文
posted @ 2023-03-15 17:45 废物大师兄 阅读(275) 评论(0) 推荐(0)
摘要:RocketMQ 5.0:云原生“消息、事件、流”实时数据处理平台,覆盖云边端一体化数据处理场景。 核心特性 云原生:生与云,长与云,无限弹性扩缩,K8s友好 高吞吐:万亿级吞吐保证,同时满足微服务与大数据场景 流处理:提供轻量、高扩展、高性能和丰富功能的流计算引擎 金融级:金融级的稳定性,广泛用于 阅读全文
posted @ 2023-01-18 18:47 废物大师兄 阅读(3952) 评论(0) 推荐(2)
摘要:写代码的时候经常遇到这样的场景:根据某个字段值来进行不同的逻辑处理。例如,不同的会员等级在购物时有不同的折扣力度。如果会员的等级很多,那么代码中与之相关的if...elseif...else...会特别长,而且每新增一种等级时需要修改原先的代码。可以用策略模式来优化,消除这种场景下的if...els 阅读全文
posted @ 2023-01-16 17:01 废物大师兄 阅读(1451) 评论(2) 推荐(1)
摘要:饿汉模式 public class Car { private static Car car = new Car(); private Car() { } public static Car getInstance() { return car; } } 懒汉模式 public class Car 阅读全文
posted @ 2022-11-23 17:28 废物大师兄 阅读(90) 评论(0) 推荐(0)
摘要:1. 准备模板 模板 + 数据 = 模型 1、将准备好的Word模板文件另存为.xml文件(PS:建议使用WPS来创建Word文件,不建议用Office) 2、将.xml文件重命名为.ftl文件 3、用文本编辑器打开.ftl文件,将内容复制出来,格式化一下,再覆盖原来的内容 (PS:格式化一下是为了 阅读全文
posted @ 2022-09-21 14:20 废物大师兄 阅读(4969) 评论(1) 推荐(3)
摘要:1 商品抢购 主要逻辑是:减库存,记录抢购成功的用户 @RestController public class DemoController { @Resource private StringRedisTemplate stringRedisTemplate; private static fin 阅读全文
posted @ 2022-07-02 21:03 废物大师兄 阅读(656) 评论(0) 推荐(0)
摘要:KeyStore(译:密钥存储库) 代表用于加密密钥和证书的存储设施。 KeyStore 管理不同类型的 entry(译:条目)。每种类型的 entry 都实现了 KeyStore.Entry 接口。提供了三个基本的 KeyStore.Entry 实现: KeyStore.PrivateKeyEnt 阅读全文
posted @ 2022-06-08 17:33 废物大师兄 阅读(5164) 评论(0) 推荐(0)
摘要:采用Java自带的Image IO 废话不多说,上菜 1. 文字水印 1 import sun.font.FontDesignMetrics; 2 3 import javax.imageio.ImageIO; 4 import java.awt.*; 5 import java.awt.image 阅读全文
posted @ 2021-06-11 12:38 废物大师兄 阅读(1501) 评论(0) 推荐(1)
摘要:延迟队列的使用场景还比较多,例如: 1、超时未收到支付回调,主动查询支付状态; 2、规定时间内,订单未支付,自动取消; 。。。 总之,但凡需要在未来的某个确定的时间点执行检查的场景中都可以用延迟队列。 常见的手段主要有:定时任务扫描、RocketMQ延迟队列、Java自动的延迟队列、监听Redis 阅读全文
posted @ 2021-04-02 19:01 废物大师兄 阅读(1299) 评论(0) 推荐(0)
摘要:SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制。本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。 在Java中SPI是被用来设计给服务提供商做插件使用的。基于策略模式来实现动态 阅读全文
posted @ 2021-01-29 19:54 废物大师兄 阅读(2075) 评论(0) 推荐(3)
摘要:1. 策略模式 策略模式是一种行为设计模式,它能让你定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。 当你有许多仅在执行某些行为时略有不同的相似类时,可使用策略模式。使用该模式能将类的业务逻辑与其算法实现细节隔离开来。 说白了,其实还是解耦 策略模式的结构如上图所示,主要 阅读全文
posted @ 2021-01-13 15:10 废物大师兄 阅读(1850) 评论(0) 推荐(2)
摘要:当用户超时未支付时,给用户发提醒消息。另一种场景是,超时未付款,订单自动取消。通常,订单创建的时候可以向延迟队列种插入一条消息,到时间自动执行。其实,也可以用临时表,把这些未支付的订单放到一个临时表中,或者Redis,然后定时任务去扫描。这里我们用延时队列来做。RocketMQ有延时队列,Ribbi 阅读全文
posted @ 2020-12-15 19:07 废物大师兄 阅读(2525) 评论(0) 推荐(3)
摘要:1. 概述 Java NIO (New IO) 由以下三个核心组件组成: Channels (通道) Buffers (缓冲区) Selectors (选择器) 通常,在NIO中,IO从一个Channel开始。数据可以从Channel中读到Buffer,也可以从Buffer中写道Channel。而S 阅读全文
posted @ 2020-10-19 09:12 废物大师兄 阅读(1039) 评论(1) 推荐(1)