数组与链表:性能差异的深层解析与查询效率优化
探讨了数组与链表在时间复杂度之外的真正性能差异。时间复杂度不等同于实际性能,CPU缓存命中率、扩容成本和空间开销是影响实际性能的关键因素。此外,介绍了优化数组和链表查询效率的策略。
1593 字
|
8 分钟
Service 层只有一个实现类也要写接口?
本文将探讨“为什么只有一个实现类也需要接口”,并逐步引出接口 + 实现类的典型用途——策略模式。我们将通过两个典型的实战案例:“登录策略”和“支付策略”,讲解策略模式在 Spring 中的落地方式。
1447 字
|
7 分钟
Java synchronized 深度指南:锁对象、用法与六种加锁模式详解
2025-06-13
Java同步机制的核心是对象监视器锁(monitor lock),通过synchronized实现线程同步。锁对象必须是引用类型,可以是实例对象(this)、类对象(Class)。synchronized有6种写法:3种实例锁(this、实例变量、实例方法)和3种类锁(Class、静态变量、静态方法)。wait/notify机制基于对象Monitor,调用wait()会释放锁并进入等待集合,notify()唤醒线程重新竞争锁。实例锁保护单个实例资源,类锁保护全局类资源。
1262 字
|
6 分钟
Spring boot 3.x 最新系统要求
Spring Boot 3.5.0 的最低配置为:Spring Boot 3.5.0 + JDK 17 + Maven 3.6.3 + maven-compiler-plugin 3.13.0 + IntelliJ IDEA 2020。其余自行推断。
315 字
|
2 分钟
Spring Bean 的注解配置和自动配置
Spring 通过 @ComponentScan 发现你在代码中明确使用注解定义的 Bean,而通过 @EnableAutoConfiguration 实现智能化的自动配置,从而大大减少了传统 Spring 应用中繁琐的 XML 配置或 Java Config 代码。
1101 字
|
6 分钟
现代 API 接口设计的主流趋势
2025-05-22
在当今软件开发中,API 已成为前后端分离、系统集成和生态协作的核心桥梁。为了提升 API 的可用性、标准化与自动化能力,业界形成了以 RESTful 设计风格 + OpenAPI 标准描述 + JSON 数据格式 为主流的 API 设计范式。
634 字
|
3 分钟
Java泛型擦除的问题与解决方法
反射和序列化,泛型擦除会导致问题,例如反序列化时无法推断出泛型的真实类型。为解决这一问题,可以使用如 Spring 的 ParameterizedTypeReference 来保留泛型信息,确保框架能正确处理泛型类型。
711 字
|
4 分钟
getInputStream() has already been called for this request 异常原因及解决方案
在Spring Web开发中,IllegalStateException: getInputStream() has already been called for this request异常常因重复读取请求体引发。 由于Servlet规范限制,请求体只能被读取一次。解决方案包括: 1) 使用Spring的ContentCachingRequestWrapper缓存请求数据; 2) 自定义HttpServletRequestWrapper实现懒加载缓存。 两种方法都能避免流被重复读取,确保请求体只获取一次并支持多次访问。
1065 字
|
5 分钟
1
2