首页
七字节
行动起来,活在当下
累计撰写
11
篇文章
累计创建
48
个标签
累计收到
0
条评论
栏目
首页
目 录
CONTENT
Java-七字节
以下是
Java
相关的文章
2025-06-29
Spring事务失效的11种场景
本文总结了Spring事务失效的11种常见场景,主要包括: 1. 访问权限问题 - 非public方法事务不生效 2. final/static方法 - 无法生成代理导致事务失效 3. 方法内部调用 - 直接调用this对象而非代理对象 4. 类未被Spring管理 - 缺少@Service等注解 5. 多线程调用 - 新线程中事务不传播 6. 未配置事务管理器 7. 错误的事务传播机制 8. 自定义异常未声明回滚 9. 嵌套事务传播设置不当 10. 数据库引擎不支持事务 11. 异常被捕获未抛出 针对方法内部调用问题,提供了三种解决方案:转移事务方法到其他Service、自我注入获取代理对象、通过AopContext获取代理对象。
2025-06-29
0
0
0
Java
MySQL
2025-06-03
ThreadLocal详解
ThreadLocal是Java中实现线程本地变量的类,它通过为每个线程提供独立的变量副本确保数据隔离。其核心在于每个线程内部维护的ThreadLocalMap,以ThreadLocal对象为键存储数据。GC后若ThreadLocal仅被弱引用,key可能为null导致内存泄漏;若被强引用则key不为null。ThreadLocalMap使用斐波那契数生成均匀哈希,并通过线性探测法解决冲突。典型应用如Web请求跨方法传递用户信息时,通过拦截器设置ThreadLocal,全程可访问但需及时清理避免内存问题。
2025-06-03
3
0
0
Java
2025-02-20
Ubuntu安装jdk7,jdk17,jdk21,切换不同Java版本
摘要: Ubuntu系统中可通过命令行安装多个JDK版本(如jdk7/jdk17/jdk21),使用`update-alternatives --config java`命令切换不同Java版本。用户只需在终端选择对应数字即可完成版本变更,支持多版本共存管理。
2025-02-20
7
0
0
Ubuntu
Java
2025-02-20
synchronized可以锁字符串吗?
摘要: synchronized无法直接锁定字符串值,只能锁对象。解决方案有:1.使用intern()方法将字符串放入常量池,但可能导致频繁fullGC;2.使用Guava的Interner类,通过弱引用机制实现更高效的内存回收。推荐方案2,它利用ConcurrentMap分段锁和弱引用特性,在保证线程安全的同时避免了常量池的内存压力。Guava方案需添加Maven/Gradle依赖,代码示例展示了如何使用Interner实现字符串同步锁。
2025-02-20
0
0
0
Java