- 博客(35)
- 收藏
- 关注
原创 【多线程理论基础】
定义了线程工作内存(缓存)与主存的交互规则,通过内存屏障(Memory Barrier)保证可见性和有序性,解决缓存一致性和指令重排问题。:电商系统中,主线程处理用户请求,后台线程异步生成订单日志,既保证了接口响应速度,又不丢失日志数据。线程安全不是绝对的“是/否”,而是。
2026-01-14 18:19:53
471
原创 【Spring中线程池】
通过指定@Async("线程池Bean名称")绑定上面的,避免使用默认的@Service// 绑定自定义的myBusinessExecutor线程池// 异步执行的业务逻辑System.out.println("异步任务执行,线程名:" + Thread.currentThread().getName());Spring核心线程池是(通用异步)和(定时任务),均封装JDK原生线程池,适配Spring生态;@Async默认使用(无线程复用,高并发禁用),生产需绑定自定义;
2026-01-11 14:27:25
812
原创 【Java 类的完整组成】
核心组成:Java类的核心是「成员变量(状态)+ 方法(行为)」,这是所有类的基础;辅助组成:初始化块(补充初始化)、内部类/接口(封装嵌套逻辑)、注解(元数据)是扩展组成,按需使用;关键规则成员变量分实例/静态,方法分实例/静态/构造,初始化块分静态/实例,执行时机不同;内部类仅服务于外部类,优先用private修饰隐藏;修饰符遵循“最小权限原则”(如成员变量优先private掌握这些组成部分,就能清晰设计出结构合理、符合Java规范的类,避免遗漏关键逻辑或出现语法错误。
2026-01-03 18:40:19
399
原创 【Java 类的完整组成】
核心组成:Java类的核心是「成员变量(状态)+ 方法(行为)」,这是所有类的基础;辅助组成:初始化块(补充初始化)、内部类/接口(封装嵌套逻辑)、注解(元数据)是扩展组成,按需使用;关键规则成员变量分实例/静态,方法分实例/静态/构造,初始化块分静态/实例,执行时机不同;内部类仅服务于外部类,优先用private修饰隐藏;修饰符遵循“最小权限原则”(如成员变量优先private掌握这些组成部分,就能清晰设计出结构合理、符合Java规范的类,避免遗漏关键逻辑或出现语法错误。
2026-01-02 17:35:45
596
原创 【Spring全局异常处理 早抛晚捕】
早抛:在错误发生时,尽早抛出异常。这意味着在业务逻辑层或服务层,一旦检测到异常条件(如参数无效、数据缺失),立即抛出相应的异常(如或自定义异常)。这样可以避免错误被忽略或延迟处理,确保问题源头清晰。晚捕:在高层或全局层面捕获和处理异常。而不是在每个方法或类中分散处理,而是在控制器层或应用入口点统一捕获,进行日志记录、错误响应或恢复操作。这提高了代码的可维护性和一致性。这种思想源于面向对象设计原则:异常应作为对象行为的一部分,由调用者统一管理。在Spring中,它简化了错误处理流程,减少了代码重复。
2026-01-02 11:33:47
657
原创 【编程和大模型交互】
摘要:本文请求优化一段代码并提供详细解释,旨在帮助作者理解优化原理并掌握讲解能力。要求优化方案附带清晰的说明,使作者能够向他人阐述技术要点。全文强调学习深度和知识传递的重要性,体现了从实践到理论的教学诉求。
2025-12-13 22:27:40
89
原创 【Redis】
Redis(Remote Dictionary Server)是一个开源的、基于内存的高性能键值存储数据库,支持多种数据结构(如字符串、哈希、列表、集合、有序集合等)。Redis 常用于缓存、消息队列、计数器、会话管理等场景,因其单线程模型和内存操作特性,具备极高的读写性能。内存存储:数据存储在内存中,读写速度极快。持久化:支持 RDB(快照)和 AOF(追加日志)两种持久化方式。高可用:通过 Redis Sentinel 实现故障转移,或通过 Redis Cluster 实现分布式扩展。原子操作。
2025-10-12 11:51:00
508
原创 【Java中类的加载】
摘要:Java的双亲委派机制是JVM类加载的核心原则,通过层级化加载器(启动类→扩展类→应用类)实现安全、唯一的类加载。工作流程为:先检查已加载→委派父加载器→自行加载。其核心作用是防止核心类篡改、避免重复加载和隔离不同模块。特殊场景(如SPI、热部署)需打破该机制。优点包括安全性高和隔离性强,但灵活性受限。该机制是JVM类加载的基础,理解其原理对解决类冲突和中间件设计至关重要。(150字)
2025-10-11 09:26:03
416
原创 【Java集合】
Collections.singletonList() 是 Java 中类提供的一个的实用方法。它的核心目的是高效、安全地创建一个仅包含一个指定元素的列表。
2025-10-10 10:46:40
1366
原创 【慢sql】
在 MySQL 数据库中查找执行过的慢 SQL 记录,通常是通过**慢查询日志(Slow Query Log)**来实现的。在Spring Boot项目中,慢SQL(执行时间过长的SQL查询)会导致性能瓶颈、响应延迟和用户体验下降。为了解决这个问题,我们需要配置报警机制来实时监控慢SQL,并结合优化策略提升数据库性能。通过以上步骤,您可以在Spring Boot项目中有效管理慢SQL:配置报警实现主动监控,结合优化提升数据库效率。通过组合使用日志分析、执行计划解读和实时监控工具,可精准定位慢SQL根源。
2025-09-30 08:26:14
664
原创 【Java数据类型】
在Java编程中,数据类型转换是常见操作,涉及基本数据类型(如intdoublechar等)和引用数据类型(如字符串String、包装类等)。转换分为隐式(自动)和显式(强制)两种方式,需注意数据精度丢失和异常风险。下面我将逐步介绍各种转换类型,并提供代码示例帮助理解。所有示例基于Java标准语法。核心原则:优先使用自动转换以避免错误;强制转换时,务必检查数据范围和兼容性。常见问题数据丢失:如double转int时小数部分被截断。(字符串解析失败)或(拆箱空对象)。
2025-09-29 01:09:43
761
原创 【Java日志大全】
Java标准库自带,简单易用但功能有限,适合小型项目。Log4j 2:Apache基金会维护的高性能框架,支持异步日志、插件扩展,适用于大型系统。Logback:Log4j的继任者,性能优异,与SLF4J无缝集成,是Spring Boot的默认选择。:门面模式框架,不直接实现日志,而是提供统一接口,可绑定到Log4j、Logback等后端。推荐作为首选,因为它解耦了日志API和实现。关键比较性能:Log4j 2和Logback支持异步日志,在高并发场景下性能更优。灵活性。
2025-09-25 14:18:16
770
原创 【复盘问题-mybatis的mapper.xml文件映射不到】
若集成 MyBatis-Plus,需检查是否因默认配置覆盖了原生 MyBatis 的路径规则。Maven 或 Gradle 未将 XML 文件打包到最终产物中,需检查构建工具的资源配置。Mapper.xml 文件未放置在正确目录下,Spring Boot 默认扫描。Mapper.xml 文件名与 Mapper 接口名不一致,或。注解,或注解的包路径未覆盖 Mapper 接口所在包。若 Mapper.xml 位于子模块,需确认路径是否为。若自定义路径,需在配置文件中明确指定。检查 Mapper.xml 的。
2025-09-25 08:26:33
500
原创 【Java在项目中优雅判空】
在 Java 中优雅地判空是提升代码健壮性、可读性和可维护性的关键,核心目标是避免。通过组合这些方法,可显著减少冗余代码,让空值处理成为代码的表达优势而非隐患。适用场景:方法返回值、链式处理、替代多层嵌套 if。提供函数式风格的空值处理,强制显式处理潜在。优点:代码简洁,避免手动组合判断。适用场景:简单逻辑或性能敏感代码。
2025-09-10 00:47:22
595
原创 【String-开发考虑的问题】
特性toString()方法类型实例方法(需对象调用)静态方法(类名调用)空值处理抛返回字符串"null"基本类型支持不支持(需先装箱)支持(重载方法直接处理)底层依赖无(自身是基础方法)依赖toString(),增加空值判断不确定对象是否为 null 时用,确保非 null 时用toString()。
2025-09-10 00:08:27
360
原创 【JavaBean拷贝、Json转换】
本文分为两部分:第一部分详细比较BeanUtils、MapperStruct、Orika和ModelMapper四种Java对象映射工具的区别,并通过代码示例说明;第二部分阐述JavaBean与JSON之间的转换方法,并提供实际应用案例。文章基于Java标准库和常见开源工具,确保内容真实可靠。在Java开发中,对象映射(Object Mapping)常用于在不同对象间复制属性值,例如从实体类(如)映射到数据传输对象(如)。这能简化代码,避免手动setter/getter。以下是四种流行工具的核心区别:Bea
2025-08-25 22:36:48
476
原创 【JSON处理】
优先选用Jackson并严格配置,重点防范循环引用与安全风险,通过DTO控制和统一规范确保系统健壮性。在处理千万级数据时,流式API可降低内存峰值。
2025-08-21 22:53:23
615
原创 【Spring接口API设计】
参数类型适用场景Spring 注解数据结构建议关键注意事项路径参数标识资源/资源层级简单类型必须验证存在性+格式,命名清晰查询参数过滤/排序/分页/字段选择单参数或封装POJO验证+默认值,命名一致性,分页必备请求体创建(POST)/更新(PUT/PATCH)必须使用DTO严格Bean验证,禁止暴露Entity,区分创建/更新DTODTO核心原则请求体必须使用DTO严格区分创建/更新DTO嵌套对象使用@Valid级联验证验证即防护// 自动触发验证// 返回结构化错误安全三重防护。
2025-08-14 07:29:08
1060
原创 【K8S学习笔记】
在单体应用时代,虚拟化技术通过解决了基础架构利用率问题。但当微服务架构兴起后,面对等需求,容器编排工具应运而生。Kubernetes(K8S)由Google基于声明式API期望状态驱动自动化运维体系。
2025-08-07 02:24:27
868
原创 【Java基础】
一个对象如果没有进行初始化操作,这时候,如果你调用这个对象的方法或者变量,就会出现空指针异常。空指针是运行时异常,编译时无法被察觉到。
2023-09-02 11:30:58
22
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅