- 博客(18)
- 收藏
- 关注
原创 Java中String的存储位置
聚焦于Java中String的存储位置,详细介绍了堆与字符串常量池的概念及其作用,分析了通过字面值和new关键字创建字符串对象的存储差异,并解答了经典面试问题中关于字符串对象创建数量的疑问。此外,还探讨了String.intern()方法如何影响字符串在常量池中的存储行为,帮助读者全面理解Java字符串的内存分配与优化机制。
2025-07-28 22:07:38
323
原创 大型互联网项目架构及技术选型
介绍了SOA与微服务架构的核心理念及区别,分析了SpringCloud与Dubbo两大服务框架的定位与生态对比,阐述了RPC与Feign在服务间通信中的应用场景和优劣,最后对分布式锁的主流实现Zookeeper与Redis进行了对比,帮助读者全面理解互联网项目架构设计与技术选型的关键要点。
2025-07-20 22:53:10
452
原创 MQ消息重复消费的原因、解决方案对比
消息重复消费是很多系统都会碰到的麻烦事,本文先讲清楚为什么会重复,然后说说用 Redis 和消息确认(ACK)能不能解决问题,哪里还会出坑。最后给你介绍几个靠谱的解决方案,帮你保证消息不丢也不重复,让业务更稳更安全。
2025-07-03 11:11:49
697
原创 数组与链表:性能差异的深层解析与查询效率优化
探讨了数组与链表在时间复杂度之外的真正性能差异。时间复杂度不等同于实际性能,CPU缓存命中率、扩容成本和空间开销是影响实际性能的关键因素。此外,本文还系统性地介绍了优化数组和链表查询效率的策略
2025-06-25 20:52:03
453
原创 Service 层只有一个实现类也要写接口?
本文将深入探讨“为什么只有一个实现类也需要接口”,并逐步引出接口 + 实现类的典型用途——策略模式。我们将通过两个典型的实战案例:“登录策略(使用 List 遍历实现 supports 判断)”和“支付策略(通过 Map 注入快速定位策略)”,全面讲解策略模式在 Spring 中的落地方式。
2025-06-19 13:48:22
716
原创 Java synchronized 深度指南:锁对象、用法与六种加锁模式详解
Java同步机制的核心是对象监视器锁(monitor lock),通过synchronized实现线程同步。锁对象必须是引用类型,可以是实例对象(this)、类对象(Class)。synchronized有6种写法:3种实例锁(this、实例变量、实例方法)和3种类锁(Class、静态变量、静态方法)。wait/notify机制基于对象Monitor,调用wait()会释放锁并进入等待集合,notify()唤醒线程重新竞争锁。实例锁保护单个实例资源,类锁保护全局类资源。
2025-06-13 10:24:52
1003
原创 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。其余自行推断。
2025-06-01 15:25:05
1326
原创 Spring Bean 的注解配置和自动配置
Spring 通过 @ComponentScan 发现你在代码中明确使用注解定义的 Bean,而通过 @EnableAutoConfiguration 实现智能化的自动配置,从而大大减少了传统 Spring 应用中繁琐的 XML 配置或 Java Config 代码。
2025-05-23 11:29:06
643
原创 现代 API 接口设计的主流趋势
在当今软件开发中,API 已成为前后端分离、系统集成和生态协作的核心桥梁。为了提升 API 的可用性、标准化与自动化能力,业界形成了以 RESTful 设计风格 + OpenAPI 标准描述 + JSON 数据格式 为主流的 API 设计范式。
2025-05-22 16:23:33
467
原创 Java泛型擦除的问题与解决方法
反射和序列化,泛型擦除会导致问题,例如反序列化时无法推断出泛型的真实类型。为解决这一问题,可以使用如 Spring 的 ParameterizedTypeReference 来保留泛型信息,确保框架能正确处理泛型类型。
2025-05-20 11:33:54
438
原创 getInputStream() has already been called for this request 异常原因及解决方案
getInputStream() has already been called for this request 异常原因及解决方案
2025-04-30 15:51:50
1472
原创 Result与ResponseEntity的对比分析
在Java Web开发中,自定义Result类和 Spring 框架的是两种常见的 HTTP 响应处理方式。Result是一个自定义的 Java 类,主要用于封装 API 响应的数据结构(即响应体),常用于业务层的响应格式。而是 Spring 提供的一个类,用于更细粒度地控制 HTTP 响应,包括状态码、headers 和响应体。。Result更偏向于业务层面的封装,而更偏向于 HTTP 协议层面的控制。Result本身并没有能力控制 HTTP 的状态码、响应头等。它只是一个简单的数据封装类。
2025-03-20 09:22:28
363
原创 CompletableFuture教程
用于异步编程,可以执行异步任务并处理结果、异常。支持多种方式来创建异步任务,支持任务组合和结果合并。提供异常处理、超时控制、任务取消等功能,适用于高并发和复杂的业务逻辑。是 Java 8 引入的非常重要的异步编程工具,能显著简化并发编程模型,并提高性能和响应速度。
2024-12-04 13:07:31
363
原创 使用scanner.nextLine()读取不到数据的问题
探讨 Java 中 Scanner 类的两种常用方法:nextLine() 和 next(),以及它们的区别和常见问题。
2024-11-26 18:48:50
215
原创 ResponseEntity 类构建 HTTP 响应(速成)
学会快速使用 ResponseEntity 来构建符合需求的 HTTP 响应,提升 API 的可用性和用户体验。
2024-10-30 20:09:27
611
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人