堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆回收之前,第一件事情就是要确定这些对象哪些还“存活”着,哪些对象已经“死去”(即不可...
背景 生产环境偶尔会有一些慢请求导致系统性能下降,吞吐量下降,下面介绍几种优化建议。 方案 1、undertow替换tomcat 电子商务类型网...
哪些代码破坏了LSP? 实际上,里式替换原则还有另外一个更加能落地、更有指导意义的描述,那就是 Design By Contract,中文翻译就...
redis是什么? 简单来说redis是一个开源的使用ANSI C语言编写的内存数据库,使用key-value的数据结构。支持数据持久化到硬盘,...
在项目中,经常有一些业务需要抛出异常,但是如果后台直接抛出throw new Exception的话,前端就很难看,对用户提示也不够友好,今天我...
在之前的章节中我们讲过yml配置文件,小伙伴们还记得吗?很好用,但是实际生产中会有很多问题。 测试是一套配置,生产是一套配置;不同人开发不同的模...
常用的定时任务有两种: 基于注解 基于接口 基于注解@Scheduled 注:不会写corn表达式的小伙伴,可以使用这个哦:https://cr...
前言 看了前一篇重构之后的代码,你可能还会有疑问: 在添加新的告警逻辑时,改动二(添加新的 handler 类)是基于扩展而非修改的方式来完成的...
前言 我们学习了 SOLID 原则中的单一职责原则和开闭原则。今天,我们再来学习 SOLID 中的 “L” 对应的原则:里式替换原则。 整体上来...