- 博客(17)
- 收藏
- 关注
原创 为什么不推荐使用Spring默认线程池?
精准控制资源,避免过载通过显式配置或// 核心线程数(根据CPU/IO密集型调整)// 最大线程数// 有界队列,防止内存溢出// 临时线程存活时间// 自定义线程名,方便日志定位new ThreadPoolExecutor.CallerRunsPolicy() // 拒绝策略:由调用线程处理// 初始化线程池有界队列+合理线程数:避免任务无限堆积和线程爆炸。自定义线程名:日志中可快速识别线程所属业务(如处理订单异步任务)。明确业务场景CPU密集型:核心线程数≈CPU核心数(如。
2025-04-28 23:33:33
610
1
原创 面试题:你知道多线程吗?了解线程池吗?有什么参数?为什么推荐自定义线程池?
一、多线程与线程池的关系多线程是程序同时执行多个任务的技术,通过CPU时间片轮转实现“并行”效果,提升资源利用率和任务处理效率。线程创建/销毁开销大(占用内存、CPU调度耗时)。无限制创建线程可能导致内存溢出、CPU过度竞争。线程池是多线程的“管理器”,提前创建一组可复用的线程,通过统一管理减少资源消耗,控制并发数量,是Java并发编程的核心工具(如二、线程池核心参数(以为例)int corePoolSize, // 核心线程数(长期存活,即使空闲)
2025-04-28 23:32:35
522
原创 本地缓存和redis缓存
定义:把数据存储在当前应用的内存中,比如Java的HashMap、Guava Cache、Spring Cache等。特点:和应用程序“共生共死”,数据只在当前进程内有效。定义:一个基于内存的分布式键值对存储系统,支持持久化、丰富的数据结构(如String、List、Set、Hash等)。特点:独立于应用程序,可部署在单独的服务器,支持多节点集群。本地缓存:像“个人笔记本”,快速但只供自己用,适合小而快的场景。Redis缓存:像“公共图书馆”,可以多人共享、存储海量数据,适合复杂的分布式系统。最佳实践。
2025-04-28 23:17:08
760
原创 面试题:动态代理是怎么实现的?
JDK 动态代理:基于反射机制,通过Proxy.newProxyInstance在运行时动态生成代理类字节码,代理类继承Proxy类并实现目标接口,所有方法调用都会转发到InvocationHandler.invoke方法。CGLIB:基于 ASM 字节码框架,直接生成目标类的子类,通过重写方法实现代理逻辑,适用于无接口的类。字节码增强:如 AspectJ 通过编译期织入或加载时增强(LTW)直接修改字节码,实现更灵活的 AOP。
2025-04-28 09:13:47
185
原创 Servlet 和 Tomcat:Java Web 世界的「服务员」与「餐厅」
为什么 Servlet 是单例?因为 Tomcat 老板很抠,不想为每个请求创建新服务员,节省内存(但你必须保证服务员无状态)。Tomcat 能直接运行 Java 程序吗?不能,它只认识 Servlet 规范下的服务员,你的程序必须实现这个规范才能被管理。Jetty、Undertow 和 Tomcat 啥区别?都是 Web 容器(餐厅老板),Tomcat 是老牌全能选手,Jetty 更轻量,Undertow 是 Spring Boot 默认内嵌容器,适合微服务。
2025-04-27 23:01:07
1094
原创 吐血整理!@Transactional 事务失效的 8 种场景及解决方案
查类是否被管理:看看类有没有@Service等注解,启动日志有没有报错说 Bean 没找到。查方法权限:事务方法必须是 public,别用 private/protected。查异常类型:是不是抛了受检异常没处理,或者吞了异常,记得用明确指定。查方法调用:是不是在类内部用this调用事务方法,改成注入自己或用代理对象。查底层配置:事务管理器有没有配,数据库引擎支不支持事务,多数据源有没有指定正确的管理器。遇到事务不回滚,别慌!按这几步一步步排查,99% 的问题都能解决。
2025-04-27 22:43:26
942
原创 深入理解 @Transactional:Spring 与 Spring Boot 中的事务管理
注解是 Spring 和 Spring Boot 中非常强大的事务管理工具,它让我们可以以声明式的方式轻松管理事务。在 Spring 中,需要手动配置事务管理器;而在 Spring Boot 中,借助自动配置功能,事务管理器的配置变得更加简单。在使用注解时,要注意代理机制、异常处理和嵌套事务等问题,以确保事务管理的正确性和可靠性。希望通过这篇文章,你能对注解在 Spring 和 Spring Boot 中的使用有更深入的理解。
2025-04-27 22:35:22
770
原创 详解Cassandra数据库
Cassandra 凭借其分布式架构和高性能特性,成为处理海量数据的理想选择。通过 Docker 快速部署和配置,可轻松搭建单机或集群环境。结合 CQL 的灵活查询能力和 5.0 版本的新特性(如向量搜索),Cassandra 能够满足 AI、物联网等新兴领域的需求。在实际应用中,需根据业务场景合理设计数据模型,并通过安全配置和性能优化确保系统稳定运行。# 快速启动单机实例 docker run -d --name cassandra -p 9042 :9042 cassandra:5.0.0参考文档。
2025-04-27 21:38:49
1421
原创 Hot100:104. 二叉树的最大深度
本题采用深度优先搜索(DFS)策略,通过递归遍历每个节点,并在遍历过程中记录当前节点的深度。每当访问一个节点时,比较当前深度是否超过当前记录的最大深度,如果是,则更新最大深度。遍历完整棵树后,返回最大深度。
2025-04-26 11:25:55
181
原创 Explain在Mysql数据库的使用
在MySQL中,EXPLAIN是一个非常有用的工具,它用于获取查询执行计划的信息,帮助开发者了解MySQL如何执行他们的SQL查询。这对于优化查询性能至关重要。当你在SQL查询前加上EXPLAIN关键字时,MySQL不会执行该查询,而是返回关于该查询将如何被执行的详细信息。
2025-04-25 21:46:22
256
原创 什么是乐观锁
乐观锁(Optimistic Locking)是一种并发控制机制,通过版本号、时间戳或状态标志来检测数据冲突,避免多个事务对同一数据的并发修改导致的不一致问题。
2025-04-25 21:14:01
204
原创 什么是幂等?
幂等性核心:多次操作 ≡ 一次操作。关键作用:避免重复、保证数据一致性。适用场景:支付、订单、配置修改、消息队列消费等。实现原则:唯一标识、状态校验、数据库约束、分布式锁等。
2025-04-25 20:43:00
131
原创 学反射原理有感
反射是一个很重要特性,在各个框架里面经常用到,著名的有Spring IOC和Spring AOP切面,AOP就是动态代理+反射机制实现。
2025-04-19 11:05:13
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人