Java
文章平均质量分 59
lyloou
这个作者很懒,什么都没留下…
展开
-
【Java】基于方法引用的构建器模式运用
封装一个set对象构建器,利用类的 set 引用方法(不局限set开头的方法)来设值,便于点式调用原创 2022-12-07 17:27:59 · 173 阅读 · 0 评论 -
【Java】基于线程池的独立任务并发执行器
基于线程池的独立任务并发执行器,以并发的方式执行任务,以提高 CPU 利用率,提高处理效率。原创 2022-06-11 11:25:31 · 281 阅读 · 0 评论 -
【Java】通过 getter 方法引用,来比较两个对象是否相等
背景编写代码时,会经常需要编写两个对象是否相等的逻辑,一般会有如下做法直接写在业务代码中;单独写个方法,业务代码中调用;重写 equals 方法;上面这些做法,都比较复杂,如果属性太多或复杂点(如果是 list 和 map 就更复杂了),就需要编写更多的判断逻辑代码了。想法(需求)如果能只需要提供比较的方法引用列表,有个地方能自动方法引用取值,并比较就好了。思路在 java8 中可以使用方法引用,如:People::getName;可以将所有要比较的 Getter 保存到列表中;原创 2022-04-09 19:58:16 · 3074 阅读 · 0 评论 -
【java】获取属性名工具
背景在编码时经常会用到同名的属性名字符串,比如用相同的属性名做为 map 中的键;在 mybatis 中,根据属性名的下划线字符串来拼接 sql 查询条件。需要修改属性名时,如果是用字符串硬编码的,引用的地方越多,修改越困难但是如果用的是 java8 中的属性引用,操作起来就很方便了,修改一处即可修改全部相关引用。属性工具类测试参考下面测试类,怎样使用;如果想要修改 articleName 为 articleTitle,在 IDEA 中,修改类的属性名很方便,选中属性名 articl原创 2022-01-13 11:36:27 · 1181 阅读 · 0 评论 -
【算法】抽奖算法
抽奖算法理论在一组奖品中,每个奖品有自己的概率,总概率为 1.0,也就是说在库存充足的情况下,必然能抽中其中的一个。通过「谢谢参与」来作为无奖的奖品(也是一种奖品)。需要注意的是:如果一组中所有的奖品,总概率之和不为 1.0,那么数值代表的概率就不是真实概率了,需要用所占比例来作为新的概率:新概率值=奖品概率/总概率。举个例子:只有 A 和 B 两个奖品,A 概率是 0.1,B 概率是 0.3,那么总概率就是 0.4,A 的真实概率就是0.1/0.4=0.25,B 的真实概率是0.3/0.4=0.7原创 2021-12-23 18:33:33 · 3265 阅读 · 0 评论 -
基于 AOP 和 JWT 实现的 Token 身份认证组件
基于 AOP 和 JWT 实现的 Token 身份认证组件原理服务端使用方式使用自定义的缓存客户端使用源码实现原理基于 AOP 面向切面编程,在执行前后插入身份认证的逻辑。原理细节:登录过程:这个过程比较简单,将用户 id、用户名、过期时间等属性结合 jwt 工具生成 token,并将用户的信息存入到缓存中,以供后期使用。验证过程:前端通过 Header 头信息的 Authorization 属性得到 Token,先进行 token 验证,再结合缓存验证,验证成功的话,将用户 id 和原创 2021-08-13 15:49:03 · 548 阅读 · 0 评论 -
AOP 实现(定时器)方法监控——Monitor
AOP 实现(定时器)方法监控——MonitorAOP 实现(定时器)方法监控——Monitor描述原理:使用:api:源码扩展AOP 实现(定时器)方法监控——Monitor描述背景定时任务出现问题,在修复发布前,需要临时停下来,可之前又没有埋点;定时任务需要临时手动触发一下,可之前又没有埋点;Monitor 就是用来解决上面这些问题的。被 @MonitorMethod 标记的方法,并且方法所在的类被 @MonitorClass 标记,那么这个方法就可监控。针对可监控的方法可以做下面这原创 2021-03-05 15:02:44 · 1566 阅读 · 2 评论 -
【business】图形验证码解耦设计
目的在调用接口时,要求必须有输入正确的图形验证码才能调用(防刷)。但是,看一些代码中将这个功能和其它业务功能耦合在一起。每次有新的接口需要用时,又得重新复制一份,就想到值得优化重构。思路生成时,从全部字母和数字中随机获取 6 个字符。接着借助 BufferedImage 和 ImageIO 工具生成字节码格式的图形验证码。再将字节码形式的图形验证码转换成 base64 字符串,等待发给前端,前端接收后可以转换并显示出来(这样我们就可以统一用 json 的方式来和前端交互,返回格式是一样的;还有一原创 2020-07-09 18:37:03 · 200 阅读 · 0 评论 -
【business】用户树查找优化
【business】用户树查找优化背景思路递归的方式迭代的方式如何查找直属子节点如何查找所有后代代码实现更多可查看源码实现 A B / \ /|\ C D E F G / \ / \ H I J K / \ L M / \原创 2020-06-17 09:44:20 · 234 阅读 · 0 评论 -
【business】 ID生成器设计
【business】 ID生成器设计参考资料雪花生成器根据不同业务配置成多个生成器生成器的生成逻辑配置 workerId测试雪花算法实现参考资料分布式系统里用户 ID 生成有什么好的方法和规则能满足“唯一、尽量短、不能直接看出规则”这几个条件? - 知乎Leaf——美团点评分布式 ID 生成系统 - 美团技术团队雪花生成器Twitter 的分布式自增 ID 算法 snowflake (Java 版) - relucent - 博客园Mybatis-Plus 雪花 id 的使用以及解析机器原创 2020-06-16 18:48:27 · 580 阅读 · 0 评论 -
【Java】基本类型和引用类型(值传递)
【关键词】【问题】·加深对基本类型和引用类型的理解;【效果图】【分析】参见最后的【参考资料】【解决方案】【代码】 public void test() throws Exception { System.out.println("\nint:================="); int i = 2;原创 2016-03-26 07:58:17 · 2654 阅读 · 1 评论