- 博客(11)
- 收藏
- 关注
原创 大文件上传导致OOM
优先推荐使用 EasyExcel,它专为大文件设计,内存占用极低。如果必须使用 Apache POI,改用或对文件进行预处理。调整 JVM 参数是临时解决方案,无法从根本上解决问题。在前端限制文件大小和格式,避免不必要的性能开销。
2025-04-02 11:42:29
655
原创 Lambda表达式
Lambda表达式是一种匿名函数,它无需命名就可以直接定义函数行为。在Java中,Lambda表达式主要用于实现函数接口(即只有一个抽象方法的接口),从而替代传统的匿名内部类,达到代码简洁化的目的。
2024-06-21 14:16:17
263
原创 自定义异步注解(AsyncConfigurer)
首先,我们需要定义一个新的注解,这个注解将作为我们自定义异步处理的标记。56@Target(ElementType.METHOD) // 该注解只能用于方法7@Retention(RetentionPolicy.RUNTIME) // 运行时保留注解,这样可以在运行时通过反射获取到9 // 可以添加自定义属性,这里为了简化未添加10}为了使自定义注解像@Async一样工作,我们需要编写一个切面(Aspect)来拦截带有注解的方法,并在切面内实现异步调用逻辑。78@Aspect。
2024-06-14 11:23:48
1113
原创 代码简洁之道-读书笔记
**有目的的注释**:仅在解释“为什么”而非“做什么”时使用注释,避免解释显而易见的代码逻辑。- **代码自解释**:好的代码本身就是最好的文档,尽量通过清晰的命名和结构减少注释的需要。- **体现意图**:优秀的代码应当让其背后的业务逻辑和设计思想一目了然,减少注释的依赖。- **清晰的错误信息**:当错误发生时,提供明确、有用的错误信息,帮助快速定位问题。- **持续重构**:定期审查和重构代码,去除重复,改进设计,保持代码质量。- **一致性**:遵循项目或团队的编码规范,保持代码风格一致性。
2024-06-07 16:06:16
217
原创 高可用设计-超时与重试
由于多种外在因素(停电、断网等)与多种内在因素(系统bug、服务器宕机、操作系统崩溃等)会导致我们的系统或者服务不能时刻保持可用状态。我们就会使用超时和重试机制。系统如果没有设置超时,就有可能导致服务端连接爆炸和大量的请求堆积,而且如果这些堆积的请求会消耗系统资源,影响新的请求处理。简单来说超时机制就是一个请求超过指定的时间还没处理完,这个请求就会被直接取消并抛出指定的异常(RuntimeException)或者错误(504)。在重试时一个相同的请求,短时间内多次执行,会导致系统或者服务不必要的多次执行。
2023-06-26 13:57:27
200
1
原创 多线程-并发编程
基础知识并发编程的优缺点为什么要使用并发编程(并发编程的优点)充分利用多核CPU的计算能力:通过并发编程的形式可以将多核CPU 的计算能力发挥到极致,性能得到提升 方便进行业务拆分,提升系统并发能力和性能:在特殊的业务场景下,先天的就适合于并发编程。现在的系统动不动就要求百万级甚至千万级的并发量,而多线程并发编程正是开发高并发系统的基础,利用好多线程机制可以大大提高系统整体的并发能力以及性能。面对复杂业务模型,并行程序会比串行程序更适应业务需求,而并发编程更能吻合这种业务拆分 。并发编程有什..
2023-06-26 13:49:19
1559
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人