![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java进阶
Java进阶
RomanticMachine
深深的喜欢上了这门艺术
展开
-
ID生成器【雪花算法】
利用雪花算法创建分布式ID,可以很有效的帮助我们获取到一个全局唯一、总体按时间递增的ID,合理的配置几乎不会获取到重复的ID,所以该ID是可以全局使用。下面案例是使用41位时间+10位机器码+12位序列来展示。基于Java版本的源码:package com.java;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * 基于雪花算法生成ID * * @原创 2022-01-02 18:28:46 · 1021 阅读 · 0 评论 -
log4j漏洞复现
最近出现的log4j漏洞问题,抱着好奇的心态来重现下。环境搭建及测试代码本文采用的是SpringBoot 2.2.6版本加一个RMI服务重现BUG,方式是通过在微服务工程里打log日志,以触发远程服务调用漏洞。省略搭建微服务的过程,我使用的是社区版idea 2020.3.4,大家同样使用社区版的话,建议安装Spring assistant插件,可以很方便的搭建Springboot工程。因为目前已经有了新版本的修复,这里建议大家使用Springboot2.2.6.RELEASE版本,其中带的log.原创 2021-12-20 12:09:51 · 567 阅读 · 0 评论 -
volatile指令重排
什么时候会发生指令重排?先来一个测试指令重排现象,下面这段代码会发生指令重排,也就是JVM优化了执行顺序。/** * 指令重排测试 */public class CommandDisorder { // 当使用volatile关键词修饰变量时,则不会出现指令重排现象 private static /*volatile*/ int a = 0, b = 0, c = 0, d = 0; /** * 测试方式:一次开启两个线程,同时修改变量 */原创 2021-12-06 20:47:14 · 424 阅读 · 0 评论 -
分批调用函数,解决数据库SQL in超长问题
背景:在使用PG查询时,我们常常会用到in,当in的个数过多时,会发生一个语句超长的问题。错误提示如下:An I/O error occurred while sending to the backend.、Tried to send an out-of-range integer as a 2-byte value: 39887Caused by: org.postgresql.util.PSQLException: An I/O error occurred while sending to th原创 2021-12-04 13:17:51 · 2930 阅读 · 0 评论