摘要:
大家好,我是苏三~ 前言 我花了一年多的时间,把我这些年的技术成长路线,都沉淀到了我的知识星球:【Java突击队】 ,欢迎大家加入一起探讨和学习。 星球里面沉淀的干货越来越多,包含了:学习路线、系统设计、技术选型、踩坑分享、项目实战、源码解读、底层原理、高频面试题,里面什么都有。 目前收到了越来越多 阅读全文
摘要:
前言 消息队列(MQ)是分布式系统中不可或缺的技术之一。 对很多小伙伴来说,刚接触MQ时,可能觉得它只是个“传话工具”,但用着用着,你会发现它简直是系统的“润滑剂”。 无论是解耦、削峰,还是异步任务处理,都离不开MQ的身影。 下面我结合实际场景,从简单到复杂,逐一拆解MQ的10种经典使用方式,希望对 阅读全文
摘要:
前言 线程池是 Java 中处理多线程的强大工具,但它不仅仅是“直接用就完事”的工具。 很多小伙伴在用线程池时,因为配置不当或忽略细节,踩过许多坑。 今天跟大家一起聊聊线程池中容易踩的 10 个坑,以及如何避免这些坑,希望对你会有所帮助。 1. 直接使用 Executors 创建线程池 许多初学者在 阅读全文
摘要:
前言 设计模式在我们日常的软件开发中无处不在,它们帮助我们编写更易扩展、更具可读性的代码。 今天结合我实际工作场景和源码实例,跟大家一起聊聊工作中最常用的8种设计模式,希望对你会有所帮助。 1. 单例模式 单例模式确保一个类只有一个实例,通常用于管理共享资源,如配置、缓存、线程池等。 代码实现:双重 阅读全文
摘要:
大家好,我是苏三,又跟大家见面了。 前言 在日常开发中,很多小伙伴喜欢用 BigDecimal 来处理精确计算,比如钱、分数、比例啥的。 理论上,它比 double 或 float 更精确,但如果你用得不对,精度丢失的问题会让你哭晕在厕所。 今天我们就来聊聊 ,错误使用BigDecimal的6种场景 阅读全文
摘要:
前言 对于开发人员来说,对用户输入的参数或者系统参数做校验,是日常工作之一。 很多小伙伴在写接口的时候,可能都会碰到一个问题:参数校验应该怎么写? 比如,开发一个用户注册接口,需要校验以下条件: 用户名不能为空,长度在 3 到 20 个字符之间; 密码不能为空,长度至少为 8 个字符; 年龄必须是正 阅读全文
摘要:
前言 很多人刚接触 Spring 的时候,对 @Autowired 绝对是爱得深沉。 一个注解,轻松搞定依赖注入,连代码量都省了。 谁不爱呢? 但慢慢地,尤其是跑到稍微复杂点的项目里,@Autowired 就开始给你整点幺蛾子。 于是,官方在某些文档和社区交流中提到过:不建议无脑用 @Autowir 阅读全文
摘要:
在我们日常工作中,可能会经常使用MySQL数据库,因为它是开源免费的,而且性能还不错。 在国内的很多公司中,经常被使用。 但我们在MySQL使用过程中,也非常容易踩坑,不信继续往下看。 今天这篇文章重点跟大家一起聊一聊使用 MySQL 的15个坑,希望对你会有所帮助。 1查询不加where条件 有些 阅读全文
摘要:
大家好,我是苏三,又跟大家见面了。 前言 最近有位粉丝问了我一个问题:如何设计一个高并发系统? 这是一个非常高频的面试题,面试官可以从多个角度,考查技术的广度和深度。 今天这篇文章跟大家一起聊聊高并发系统设计一些关键点,希望对你会有所帮助。 1 页面静态化 对于高并发系统的页面功能,我们必须要做静态 阅读全文
摘要:
前言 分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中。 但就是这样一个简单的分类树查询功能,我们却优化了5次。 到底是怎么回事呢? 背景 我们的网站使用了SpringBoot推荐的模板引擎:Thymeleaf,进行动态渲染。 它是一个XML/XHTML/HTML5模板引擎,可用于 阅读全文
摘要:
前言 Redis在我们的日常开发工作中,使用频率非常高,已经变成了必不可少的技术之一。 Redis的使用场景也很多。 比如:保存用户登录态,做限流,做分布式锁,做缓存提升数据访问速度等等。 那么问题来了,Redis的性能要如何优化? 为了充分发挥Redis的性能,这篇文章跟大家一起聊聊Redis性能 阅读全文