自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

是Vzn呀

是架构师、是TeamLeader、亦是限量版的自己。

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

原创 再聊Java Stream的一些实战技能与注意点

换个角度对Stream使用技巧与隐藏坑揭秘,超大杯Stream技能点讲解,一次性搞懂与Stream相关的方方面面。

2023-09-13 11:27:54 527

原创 代码检视的新姿势!在IDEA中得到沉浸式Code Review新体验

经常在所谓的“屎山”代码中修修补补,总会有踩不尽的坑。这个时候,`代码review`便成了开发团队中质量保证的关键一环,很多做的比较好的团队,也会有定期代码review的制度。这里给大家提供一种可以在IDEA中得到沉浸式Code Review的新体验。

2023-09-08 09:33:32 662

原创 探讨下如何更好的使用缓存 —— Redis缓存的特殊用法以及与本地缓存一起构建多级缓存的实现

通过前面的文章,我们一起剖析了CaffeineEhcache等框架的原理与使用场景,也一同领略了以Redis为代表的在分布式高并发场景下无可替代的价值。现在的很多大型高并发系统都是采用的分布式部署方式,而作为高并发系统的基石,缓存是不可或缺的重要环节。

2023-01-17 08:25:02 616 1

原创 面对集中式缓存实现上的挑战,Redis交出的是何种答卷?聊聊Redis在分布式方面的能力设计

在前两篇文章中,我们介绍了Redis的一些主流特性与典型使用场景。现在我们来对比一下,分布式缓存相比于本地缓存,在实现层面需要关注的点有哪些不同。致命性从上述几个维度的对比可以发现,同样是缓存,但所承担的使命是完全不一样的,业务对集中式缓存的存储容量可靠性。

2023-01-12 08:53:58 337

原创 Redis缓存何以一枝独秀?(2) —— 聊聊Redis的数据过期、数据淘汰以及数据持久化的实现机制

上一篇文章中呢,我们简单的介绍了下Redis的整体情况。作为集中式缓存的优秀代表,Redis可以帮助我们在项目中完成很多特定的功能。Redis准确的说是一个,但是由于其超高的并发处理性能,及其对于缓存场景所提供的一系列能力构建,使其成为了分布式系统中的集中缓存的绝佳选择。Redis对于缓存能力场景的支持,除了基础的缓存增删改查。

2023-01-11 08:40:38 287

原创 Redis缓存何以一枝独秀?——从百变应用场景与热门面试题中感受下Redis的核心特性与使用注意点

在前面的文章中,我们一起领略了Guava Cache、Caffeine、Ehcache等优秀的本地JVM级别本地缓存框架的特性、原理与具体的使用方法。除却本地缓存之外,在当前分布式、微服务等架构盛行的时代,明显无法满足大型系统中的各种缓存诉求,比如前面文章中反复提及的问题、以及单机缓存无法逾越的瓶颈。作为应对之法,

2023-01-09 08:49:16 302

原创 JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来3 —— 本地缓存变身分布式集群缓存,打破本地缓存天花板

上一篇文章中,我们知晓了如何在项目中通过不同的方式来并在业务逻辑中进行使用。作为JAVA本地缓存框架综合实力天花板级别的Ehcache,除了在本地缓存方面具有强悍的实力外,还具有一个其它对手所不具备的特色功能,即Ehcache提供了对于的支持,这也使得Ehcache不仅仅是个本地单机缓存,更是一个分布式缓存。分布式缓存的意义是什么?

2023-01-06 08:39:55 200

原创 JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来2 —— Ehcache的各种项目集成与使用初体验

上一篇文档中,介绍了Ehcache所具有的核心优秀特性,如数据持久化、多级缓存、集群能力等等。所谓纸上得来终觉浅、绝知此事要躬行,接下来我们就一起动手实践下,在项目中集成Ehcache并体验Ehcache的各种常见用法。

2023-01-05 08:51:17 114

原创 JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来 —— 感受来自Ehcache的强大实力

前面几篇文章中我们详细的介绍与探讨了与Caffeine的实现、特性与使用方式。提到JAVA本地缓存框架,还有一个同样无法被忽视的强大存在 ——!它最初是由Greg Luck于2003年开始开发,截止目前,Ehcache已经演进到了3.10.0版本,各方面的能力已经构建的非常完善。上也毫不谦虚的描述自己是“

2023-01-04 09:06:11 90

原创 解读JVM级别本地缓存Caffeine青出于蓝的要诀3 —— 讲透Caffeine的数据驱逐淘汰机制与用法

大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。上一篇文章中,我们聊了下的同步、异步的数据回源方式。本篇文章我们再一起研讨下Caffeine的多种不同的数据,以及对应的实际使用。

2022-12-23 11:45:19 217

原创 解读JVM级别本地缓存Caffeine青出于蓝的要诀2 —— 弄清楚Caffeine的同步、异步回源方式

大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。上一篇文章中,我们继之后,又认识了青出于蓝的。作为一种对外提供黑盒缓存能力的专门组件,Caffeine基于模式进行构建。也即对外提供数据查询接口,会优先在缓存中进行查询,若命中缓存则返回结果,未命中则尝试去真正的源端(如:数据库)去获取数据并回填到缓存中,返回给调用方。与Guava Cache相似,Caffeine的Callable方式。

2022-12-13 09:13:08 368

原创 解读JVM级别本地缓存Caffeine青出于蓝的要诀 —— 缘何会更强、如何去上手

大家好,又见面了。在前面的几篇文章中,我们一起聊了下本地缓存的动手实现、本地缓存相关的规范等,也聊了下Google的Guava Cache的相关原理与使用方式。比较心急的小伙伴已经坐不住了,提到本地缓存,怎么能不提一下“地上最强”的呢?能被小伙伴称之为“地上最强”,可见Caffeine的魅力之大!的确,提到JAVA中的本地缓存框架,是怎么也没法轻视的重磅嘉宾。前面几篇文章中,我们一起探索了JVM级别的优秀缓存框架Guava Cache,而相比之下,Caffeine可谓是站在巨人肩膀上,在很多方面做了深度的优

2022-12-06 18:53:24 220

原创 重新认识下JVM级别的本地缓存框架Guava Cache(3)——探寻实现细节与核心机制

本篇文章我们将进一步探讨下Guava Cache 实现层面的一些逻辑与设计策略,让我们可以对Guava Cache整体有个更加明朗的认识,促进实际使用中对其的理解。

2022-11-30 08:35:28 116

原创 重新认识下JVM级别的本地缓存框架Guava Cache(2)——深入解读其容量限制与数据淘汰策略

对于缓存容器而言,容量限制与数据淘汰是两个基础且核心的关键点,也是实际使用的时候使用频率最高的特性。本篇在上一文基础上深入解读下Guava Cache中的容量限制与数据淘汰策略的实现与使用约束。

2022-11-24 11:50:14 168

原创 重新认识下JVM级别的本地缓存框架Guava Cache——优秀从何而来

作为缓存系列专栏内容,秉持着不重复造轮子的理念,本篇文章中我们就开始深入剖析JAVA本地缓存的优秀轮子 —— 来自Google家族的Guava Cache。聊一聊其实现机制、看一看如何使用。

2022-11-22 08:53:04 239

原创 JAVA缓存规范 —— 虽迟但到的JCache API与天生不俗的Spring Cache

业界各大厂商或开源团队都会构建并提供一些缓存框架组件提供给开发者按需选择,这里就会涉及到一个标准规范的遵循问题,本文我们一起聊聊JCache API规范与SpringCache规范。

2022-11-15 14:35:21 186

原创 手写本地缓存实战2—— 打造正规军,构建通用本地缓存框架

作为缓存系列专栏的第四篇文章,我们将在上一篇的基础之上进行升华,一起思考如何构建一个完整且通用的本地缓存框架,并在过程中体会缓存实现的关键点与架构设计的思路。

2022-11-09 17:58:15 169

原创 手写本地缓存实战1——各个击破,按需应对实际使用场景

本篇我们一起探讨下项目中本地缓存的各种使用场景与应对实现策略,也通过本篇介绍的几个本地缓存的实现策略与关键特性的支持,体会到本地缓存使用与构建的关注要点。

2022-11-07 08:51:50 181

原创 聊一聊安全且正确使用缓存的那些事 —— 关于缓存可靠性、关乎数据一致性

在分布式系统盛行的今天,缓存充当着扛压屏障的作用,一旦缓存出现问题,对系统影响也是致命的。本文我们一起聊聊如何安全且可靠的使用缓存,聊聊缓存击穿、缓存雪崩、缓存穿透以及数据一致性、热点数据淘汰机制等。

2022-11-01 16:12:18 178

原创 聊一聊作为高并发系统基石之一的缓存,会用很简单,用好才是技术活

本篇文章的内容中,我们对缓存的各个方面进行了一个简单的阐述与了解,也可以看出缓存对于一个软件系统的重要价值。通过对缓存的合理、充分利用,可以大大的增强我们的系统承压性能、提升产品的用户体验。缓存作为高并发系统中的神兵利器被广泛使用,堪称高并发系统的基石之一。而缓存的内容还远远不止我们本篇文档中所介绍的这些、它是一个非常宏大的命题。为了能够将缓存的方方面面彻底的讲透、讲全,在接下来的一段时间里,我会以系列专栏的形式,从不同的角度对缓存的方方面面进行探讨。

2022-10-26 17:11:25 276

原创 编码中的Adapter,不仅是一种设计模式,更是一种架构理念与解决方案

在项目编码中经常会遇到一些新的需求试图复用已有的功能逻辑进行实现的场景,但是已有的逻辑又不能完全满足新需求的要求,所以就会出现各种生搬硬套的操作。本篇文档就一起来聊一聊如何借助Adapter实现高效复用已有逻辑、让代码复用起来更加的得体与优雅。

2022-09-27 08:30:28 232

原创 JAVA中容器设计的进化史:从白盒到黑盒,再到跻身为设计模式之一的迭代器

容器设计是项目编码中非常常见的一个场景,本文从项目中习以为常的一些场景作为切入点,聊一聊容器设计的一些思考、聊一聊元素遍历的思路、以及身为设计模式之一的迭代器模式。

2022-09-22 13:39:39 216

原创 JAVA中让Swagger产出更加符合我们诉求的描述文档,按需决定显示或者隐藏指定内容

swagger作为一个被广泛使用的在线接口文档辅助工具,上手会用很容易,但想用好却还是需要一定功夫的。所以呢,本篇文档就和大家一起来聊一聊如何用好swagger,让其真正的成为项目中的神兵利器。

2022-09-08 11:02:50 1204

原创 JAVA中自定义扩展Swagger的能力,自动生成参数取值含义说明,提升开发效率

项目中一个常见的场景,就是接口请求或者响应参数中会有一些字段的取值会限定为固定几个可选值,而在代码中这些可选值会通过枚举类来承载,本文探讨下如何让swagger接口文档中自动加上字段的取值含义说明,解放生产力。

2022-09-06 09:14:26 763

原创 基于开源方案构建统一的文件在线预览与office协同编辑平台的架构与实现历程

在构建业务系统的时候,经常会涉及到对附件的支持,继而又会引申出对附件在线预览、在线编辑、多人协同编辑等种种能力的诉求。本文介绍了下基于开源方案实现的一体化文档预览与在线协同编辑平台的方案,一起交流下吧~...

2022-08-29 09:14:16 1952

原创 用好JAVA中的函数式接口,轻松从通用代码框架中剥离掉业务定制逻辑

今天我们一起聊一聊JAVA中的**函数式接口**。那我们首先要知道啥是函数式接口、它和JAVA中普通的接口有啥区别?其实函数式接口也是一个`Interface`类,是一种比较特殊的接口类,这个接口类有且仅有一个抽象方法(但是可以有其余的方法,比如`default`方法)。...

2022-08-26 17:20:37 177

原创 聊聊Spring事务控制策略以及@Transactional失效问题避坑

在大部分涉及到数据库操作的项目里面,事务控制、事务处理都是一个无法回避的问题。这里我们一起探讨下关于事务控制相关的一些内容。

2022-08-08 14:31:56 504

原创 不堆概念、换个角度聊多线程并发编程

为了提升处理效率,并发一直以来都是软件开发设计场景中无法绕过的话题。为了提升系统的整体并发吞吐量,程序员们可谓是煞费苦心。本文换个角度探讨下多线程并发相关的内容,全面了解下多线程并发世界的各种关联。 ...

2022-07-29 09:23:14 188

原创 使用JAVA CompletableFuture实现流水线化的并行处理,深度实践总结

在项目开发中,由于业务规划原因,经常会涉及到聚合信息处理类的场景,按照环节串行执行的时候往往最终响应耗时很长,JAVA对并行的处理场景支持已经很完善了,本文深度总结了应对策略,快来看看吧~ ......

2022-07-29 09:17:13 739

原创 讲透JAVA Stream的collect用法与原理,远比你想象的更强大

前面我们演示了很多Collectors工具类中提供的收集器的用法,上一节中列出来的Collectors提供的常用收集器,也可以覆盖大部分场景的开发诉求了。但也许在项目中,我们会遇到一些定制化的场景,现有的收集器无法满足我们的诉求,这个时候,我们也可以自己来实现定制化的收集器。我们知道,所谓的收集器,其实就是一个Collector接口的具体实现类。所以如果想要定制自己的收集器,首先要先了解Collector接口到底有哪些方法需要我们去实现,以及各个方法的作用与用途。当我们新建一个5个接口接口名称。...

2022-07-18 18:06:28 2470 2

原创 是时候优雅的和NullPointException说再见了

作为JAVA开发中最典型的异常类型,甚至可能是很多程序员入行之后收到的第一份异常大礼包类型,NullPointException也似乎成为了一种魔咒,应该如何去打破呢?一起来探讨下吧

2022-07-14 16:03:35 172

原创 全面吃透JAVA Stream流操作,让代码更加的优雅

笔者结合在团队中多年的代码检视遇到的情况,结合平时项目编码实践经验,对Stream的核心要点与易混淆用法、典型使用场景等进行了详细的梳理总结,希望可以帮助大家对Stream有个更全面的认知,也可以更加高效的应用到项目开发中去。 ...

2022-07-11 14:09:00 1103 1

原创 避坑手册 | JAVA编码中容易踩坑的十大陷阱

JAVA编码中存在一些容易被人忽视的陷阱,稍不留神可能就会跌落其中,给项目的稳定运行埋下隐患。此外,这些陷阱也是面试的时候面试官比较喜欢问的问题。本文对这些陷阱进行了统一的整理,让你知道应该如何避免落入陷阱中,下面就一起来了解下吧。...

2022-06-30 18:16:01 253

原创 为什么不建议使用自定义Object作为HashMap的key

此前部门内的一个线上系统上线后内存一路飙高、一段时间后直接占满。协助开发人员去分析定位,发现内存中某个Object的量远远超出了预期的范围,很明显出现内存泄漏了。

2022-06-29 16:12:49 197

原创 Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码

正所谓“工欲善其事、必先利其器”,面对一个优秀的框架,如果再结合一些外部的工具,其实可以让我们的开发效率与程序员开发过程的体验更上一层楼的。

2022-06-28 18:24:04 208

原创 Spring Data JPA系列4——Spring声明式事务处理与多数据源支持

在大部分涉及到数据库操作的项目里面,事务控制、事务处理都是一个无法回避的问题。那事务使用中的一些问题你都了解么?本篇我们一起探讨下。

2022-06-25 21:38:11 430

原创 Spring Data JPA系列3:JPA项目中核心场景与进阶用法介绍

本篇内容将在上一篇已有的内容基础上,进一步的聊一下项目中使用JPA的一些高阶复杂场景的实践指导,覆盖了主要核心的JPA使用场景,可以让你在需求开发的时候对JPA的使用更加的游刃有余。

2022-06-24 16:16:47 283

原创 Spring Data JPA系列2:SpringBoot集成JPA详细教程,快速在项目中熟练使用JPA

作为SpringData JPA系列内容的第二篇,此处以SpringBoot项目为基准,讲一下集成SpringData JPA的相关要点,带你快速的上手SpringData JPA,并用实例演示常见的DB操作场景,让你分分钟轻松玩转JPA。

2022-06-23 16:55:12 970

原创 JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?一文带你厘清个中曲直,给你个选择SpringDataJPA的理由

本文档隶属于《Spring Data JPA用法与技能探究》系列的第一篇。本系列文档规划对Spring Data JPA进行全方位的使用介绍。通过本篇内容,对JAVA体系中DB操作相关的组件、规范等有一定初步了解,也大致了解了应该如何选择是使用JPA还是MyBatis选型。...

2022-06-21 12:59:17 297

原创 当JAVA注解、AOP、SpEL相遇,更多可能变为了现实

借助`JAVA注解 + AOP + SpEL`的组合,会让我们在很多实际问题的处理上变得游刃有余,可以抽象出很多公共通用的处理逻辑,实现通用逻辑与业务逻辑的解耦,便于业务层代码的开发。

2022-06-19 20:10:01 83

空空如也

空空如也

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

TA关注的人

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