自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

try to do

try to like it

  • 博客(558)
  • 收藏
  • 关注

原创 ConcurrentHashMap 与 HashMap的区别、以及初始化设置大小提升性能

2024-05-21 14:48:04 262

原创 ThreadLocalRandom.current().nextInt(100) 和 Random.nextInt 的区别

ThreadLocalRandom.current().nextInt(100) 和 Random.nextInt(100) 都是在 Java 中生成随机整数的方法,但它们之间存在一些关键区别,特别是在多线程环境下使用时。ThreadLocalRandom 是为多线程环境优化的,每个线程使用 ThreadLocalRandom 时都会有自己的随机数生成器,这样就减少了在多线程环境中争用同一个随机数生成器实例的开销。相对于 Random,它提供了更好的性能和较小的内存占用。

2024-05-21 11:19:23 433

转载 深入Guava Cache的refresh和expire刷新机制

Guava Cache是本地缓存的不二之选,用起来真不错呵,可是你真的知道怎么使用才能满足需求?今天我们深入探讨一下Expire和Refresh。(废话少说)

2024-05-08 09:18:42 17

转载 AtomicBoolean介绍

AtomicBoolean类的优点在于原子性操作,可确保在多线程环境中对布尔值的读取和设置不会产生竞态条件,同时,它的性能通常优于使用synchronized的代码,因为它避免了线程阻塞和上下文切换的开销。同时,AtomicBoolean还提供了丰富的API,如compareAndSet和getAndSet等。但是,虽然AtomicBoolean提供了原子性保证,但它却无法解决并发中的可见性和有序性问题,这里需要特别注意。

2024-04-11 10:10:19 12 1

原创 安装flatc:fbs文件转java文件

安装flatc命令前,先安装brew、cmake:

2024-04-09 12:47:57 363

原创 分页查询优化

分页查询优化,在程序内存中计算出id的值,要比通过select id from 表 order by id 49173090,100,先找到id,再关联查询要快很多的,大概快出3-5倍。

2024-04-03 16:39:17 112

转载 开启String去重XX:+UseStringDeduplication的利与弊

转载 https://blog.csdn.net/goldenfish1919/article/details/94555589。

2024-04-01 19:53:48 27

转载 深入Guava Cache的refresh和expire刷新机制

https://blog.csdn.net/abc86319253/article/details/53020432https://community.jiguang.cn/article/464216

2024-03-22 10:08:44 24

原创 正则表达式 不包含xx 包含xx

该正则的目的是要匹配上第一个串、而不能匹配上第二个串。.*MiniProgram) 解释见。

2024-03-19 09:18:21 142

转载 redis命令scan、keys的区别

https://www.cnblogs.com/lxwphp/p/15452534.htmlhttps://blog.51cto.com/JavaAlliance/4803496

2024-03-18 19:59:32 14

转载 Aviator——轻量级Java表达式求值引擎

讲的很清楚、全面 https://developer.aliyun.com/article/608829。

2024-03-18 08:50:06 27

转载 BitSet原理与实践

JAVA中,,根据上述“位图”的概念,那么(无碰撞冲突时)。比如50个数字{0,1,10,…63},判定“15”是否存在,那么我们通常会首先将这些数字使用数组或者hashmap保存,然后再去判定,那么保存这些这些数据需要占用64 * 64位;。(如果换成50个字符串,那么其节约的空间可能更大)。BitSet只面向数字比较,比如set(int a,boolean value)方法,;此后可以。对于string类型的数据,如果像使用BitSet,那么可以。

2024-03-17 13:54:05 26

转载 Shallow Size和Retained Size详解

计算Retained Size的关键在于领会移除实例时, 可以同时被回收的实例, 重点观察B实例的情况。

2024-02-24 23:19:45 339

原创 idea 跑单测 配置jdk的堆栈大小 -Xmx

idea 跑单测配置jdk的堆栈大小 -Xmx

2024-01-10 14:23:20 406

原创 curl get/post链接

curl get/post链接

2024-01-02 20:43:36 379

转载 ping和telnet的区别

Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:Ping空格IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。Ping(Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。

2023-12-08 18:34:10 271

转载 Thread.sleep、Object.wait、LockSupport.park 区别

转载:https://blog.csdn.net/u013332124/article/details/84647915。

2023-12-08 18:12:32 60

原创 System.getenv()与System.getProperty()

System.getenv()与System.getProperty()的使用场景与区别

2023-10-26 11:39:56 325

原创 PlantUML文本绘制类图

记录下文本绘制类图的语法

2023-08-25 10:35:22 850

转载 git stash用法

git stash的用法

2023-07-11 10:30:44 1213

转载 Freemarker:替换复杂数据结构的宏参

最近发现Freemarker可以替换复杂数据结构的宏参,在csdn标记下,方便后续应用。

2023-07-03 21:09:30 93

转载 try-catch-finally执行顺序你都搞明白了吗?

无论catch是否捕获异常,finally语句块都是要被执行的。当try块或catch块return一个值,那么finally块中的代码会在执行return后,返回之前执行。(此时并没有返回运算后的值,而是把要返回的值暂时保存起来)。finally中如果包含return,那么程序将在这里返回,而不是通过try或catch中的return返回,返回值就不是try或catch中保存的返回值了。会直接在finally中结束方法的执行,导致try、catch中的return失效。

2023-06-02 09:53:04 576

原创 Java 枚举方法

【代码】Java 枚举方法。

2023-05-06 15:34:33 83

转载 Lombok EqualsAndHashCode 的用法

反编译修改后的User.class,发现有些许变化,变化(1)和(2)解释了@EqualsAndHashCode(callSuper = true)的作用.当@EqualsAndHashCode修改为@EqualsAndHashCode(callSuper = true)时,输出false。参考 https://www.jianshu.com/p/16571aad10a2。

2023-04-16 16:33:46 100

原创 Java Metrics系统性能监控工具

可以监控方法的rt监控。

2023-03-21 19:20:43 177

转载 Guava EventBus 发布/订阅模式

EventBus 是 Guava 的事件处理机制,是观察者模式(生产/消费模型)的一种实现。观察者模式在我们日常开发中使用非常广泛,例如在订单系统中,订单状态或者物流信息的变更会向用户发送APP推送、短信、通知卖家、买家等等;审批系统中,审批单的流程流转会通知发起审批用户、审批的领导等等。

2023-01-31 20:54:40 232

原创 Spring注解积累

Scheduled注解用于系统定时执行某个方法,

2022-10-19 21:38:27 167

转载 maven scope的作用

比如说,假定我们自己的项目ProjectABC 中有一个类叫C1,而这个C1中会import这个portal-impl的artifact中的类B1,那么在编译阶段,我们肯定需要这个B1,否则C1通不过编译,因为我们的scope设置为provided了,所以编译阶段起作用,所以C1正确的通过了编译。刚才我们讲述的是理论部分,现在我们看下,实际插件在运行时候,是如何来区别对待scope=compile和scope=provided的情况的。知道B在A项目中的scope,那么怎么知道C在A中的scope呢?...

2022-08-25 20:00:22 147

转载 HashMap、ConcurrentHashMap原理

JAVA并发容器—ConcurrentHashMapJava HashMap 和 ConcurrentHashMapHashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!Map 这样的 在软件开发中是非常经典的结构,常用于在内存中存放数据。本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。众所周知 HashMap 底层是基于 组成的,不过在 jdk1.

2022-06-27 22:56:16 125

转载 SimpleDateFormat线程不安全及解决办法

SimpleDateFormat线程不安全的原因、以及如何线程安全的使用

2022-06-26 11:18:35 1426

转载 几种表达式引擎

JAVA使用ScriptEngine 解析脚本google aviator:轻量级Java公式引擎

2022-06-06 19:20:09 496 1

转载 mysql5.6 索引下推

参考MySQL索引下推,原来这么简单!“MySQL5.6”、“索引优化”,其实都是索引下推1、什么是索引下推索引条件下推,也叫索引下推,英文全称Index Condition Pushdown,简称ICP。索引下推是MySQL5.6新添加的特性,用于优化数据的查询。在MySQL5.6之前,通过使用非主键索引进行查询的时候,存储引擎通过索引查询数据,然后将结果返回给MySQL server层,在server层判断是否符合条件。在MySQL5.6及以上版本,可以使用索引下推的特性。当存在索引的列做

2022-04-23 10:51:51 245

原创 Spock单测利器,用过都说好

参考Spock单元测试框架介绍以及在美团优选的实践Spock官网单元测试及框架简介Spock简介在日常开发中,每发布一个需求,为了保证代码逻辑的正确性,需要编写高覆盖率的单元测试。市面上常见的单测框架有Junit、Mock。JUnit适用于没有外部依赖服务、或者外部依赖服务较少的简单类的单测,对于有外部依赖服务的类、或者对运行环境有要求的类,Junit模拟外部依赖、环境非常耗时。Mock类型的单测方式会解决外部依赖不容易模拟的问题,常见的Mock有Jmock、Mockito、PowerMock

2022-03-10 16:41:34 1493

转载 Mybatis 插件机制解析

参考概述Mybatis插件又称拦截器,本篇文章中出现的拦截器都表示插件。Mybatis采用责任链模式,通过动态代理组织多个插件(拦截器),通过这些插件可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最好了解下它的原理,以便写出安全高效的插件。MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor (update, query, flush

2022-01-09 17:02:51 335

原创 使用范型简化代码

使用范型简化代码

2021-12-12 19:30:30 289

原创 函数模版简化代码

改造前的代码public class OfflineCacheService { @Autowired private RedisConfig redisConfig; @Override public Result<Void> pexpireAt(String cacheKey, long pexpireAt) { JedisPool jedisPool = redisConfig.getJedisPool(); tr

2021-12-12 18:03:06 592

原创 java环境参数

dockerfile# 设置spring profile或者自定义的jvm参数。如果需要则打开下面的注释内容ENV SERVICE_OPTS="-Dspring.profiles.active=production -Ddruid.logType=slf4j"java// 在dockerfile启动参数中设置System.getProperty("spring.profiles.active")System.getProperty("user.home"); // home/admini

2021-12-11 12:49:13 399

转载 okhttp

https://www.jianshu.com/p/ca8a982a116b

2021-11-28 23:01:42 90

转载 性能分析工具 火焰图

https://arthas.aliyun.com/doc/profiler.htmlhttps://zhuanlan.zhihu.com/p/73385693https://www.ruanyifeng.com/blog/2017/09/flame-graph.htmlhttps://www.infoq.cn/article/a8kmnxdhbwmzxzsytlga

2021-11-23 11:00:27 159

转载 优雅的校验参数 @Valid @Validated

参考如何在项目中优雅的校验参数Bean Validation Spring参数校验

2021-11-21 17:26:11 94

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除