技术随笔
-
聊聊什么是缓存雪崩和缓存穿透
点击上方蓝字关注我! 缓存雪崩 假如一个系统,它在高峰期有每秒7000个请求,这时我们使用缓存抗住了这么高的请求。但如果在某个时间点缓存大量失效,或者缓存服务器挂掉了,那么这些请求…
-
如何优雅的统计List集合中元素重复出现次数
点击上方蓝字关注我! 背景 统计List集合中元素出现的次数,相信大家都做过。举个例子,我们要统计集合中名字重复的次数。 List<String> nameL…
-
我的shell脚本实战-编写一个系统发布脚本
点击上方蓝字关注我! 平常我们会使用Jenkins发布系统,Jenkins可以从代码更新,编译到发布这样的一条龙服务。操作成本很低,作为程序员,肯定不满足于简单的界面操作。 于是我…
-
使用DFA自动机算法屏蔽敏感词以及进阶算法AC自动机的思考
点击上方蓝字关注我! 需求背景 大家有没有做过屏蔽敏感词的需求呢,这个需求一般来说很常见了。比如,系统中有一段话: 我爱吃肯德基 要求【肯德基】三个词给屏蔽掉,屏蔽后的语句显示为:…
-
被Arrays.asList坑了后,我决定分析它的源码
点击上方蓝字关注我! 平时我们使用Arrays.asList()快速组装成List集合。比如我们将字符串或者数组转换成集合: String[] arrayStr …
-
我用注解优雅的实现了数据的脱敏
点击上方蓝字关注我! 1使用场景 你平时肯定做过这样的需求。要求展示用户的手机号,但是不能完全展示,需要在中间给手机号打码,如下图: 我们将关键数据做了适当隐藏,这样就叫数据脱敏。…
-
使用EasyExcel导出,这个轮子真方便
点击上方蓝字关注我! EasyExcel是一款优秀的Excel导出组件,基于注解的形式导出。除了导出,还支持导入。今天我们主要聊聊它的导出。 git项目地址:https://git…
-
BigDecimal计算的这些坑,让我的程序产生难以想象的Bug
点击上方蓝字关注我! 通常我们在金融、科学等场景,会使用BigDecimal。然而如果我们不注意BigDecimal的精度问题,计算结果偏差可能会很大,最终会产生难以想象的Bug。…
-
我用规则引擎实现了消除if语句
点击上方蓝字关注我! 1背景 我之前写了一篇关于使用注解和策略模式实现数据脱敏功能,其中使用策略模式用来消除if语句,实现业务与条件逻辑的解耦,有利于功能的扩展。 使用策略模式实现…
-
为什么if-else会影响我的代码的复杂度
点击上方蓝字关注我! 关于if-else的争议 我之前写了一篇文章《我用规则引擎消除if语句,提高了代码的可扩展性》,这篇文章我想阐述的观点是复杂的if语句可能会影响代码的阅读和代…
-
我用自定义注解优雅的实现了业务的复杂校验
点击上方蓝字关注我! 背景 假设我们要开发一个创建超级俱乐部会员的功能,要求创建的条件为: “ 会员的id要求为【1-10】 电话号码要求为185开头 注册日期不能小于5月15日 …
-
我用shell脚本实现项目容器化自动部署
点击上方蓝字关注我! 简介 本文主要用shell脚本实现的功能为: “ 代码更新 代码编译 镜像制作 容器启动 镜像推送 推送通知 ” 有兴趣的童鞋千万不要错过哦~ 背景 之前我写…
-
我使用延迟队列实现商品的竞拍成交功能
点击上方蓝字关注我! 背景 我们平时开发可能要求实现这样的需求:用户可以在有效的时间内进行商品竞拍,当有效时间过了之后,取竞拍价最高的用户成交。我们一般可以使用定时任务每5s定时扫…
-
如何优雅的加密配置文件中的敏感信息
点击上方蓝字关注我! 为什么要加密配置文件信息 我们平时的项目中,会在配置文件中配置一些敏感信息,比如配置数据库账号、密码等信息。如果我们将配置文件与代码一起打包,别人拿到jar包…
-
还在为日期计算烦恼?Java8帮你轻松搞定
点击上方蓝字关注我! 我们平时开发日期一般都是使用Date类。在使用Date计算时,一般将会将Date转换成时间戳,即转换成ms后进行计算,这样做很麻烦。当然我们也可以使用第三方日…
-
高并下如何做变量的自增与自减
点击上方蓝字关注我! 1变量的自增与自减 变量的自增自减相信大家都会,一般情况下直接++或–就可以了。但是实际情况我们可能需要考虑并发问题,多线程情况下,如果我们直接计算。计算结…