首页
个人开发
工作相关
搜索
登录
搜索
colo
欲买桂花同载酒
累计撰写
1828
篇文章
累计收到
0
条评论
首页
栏目
首页
个人开发
工作相关
作者 【1】 的文章
2025-12-13
如何安全地从ArrayList中删除特定元素?
安全删除ArrayList元素的两种主要方式:使用Iterator的remove()方法:在遍历过程中安全删除使用Java 8+的removeIf()方法:简洁高效的单行解决方案避免在遍历时直接调用ArrayList的remove()方法,否则会抛出ConcurrentModificationException。
2025年-12月-13日
19 阅读
0 评论
Java集合框架
2025-12-13
Java中String、StringBuilder和StringBuffer的主要区别是什么?在什么场景下应该使用它们?
主要区别:String:不可变对象,每次修改都会创建新对象,适合存储常量或少量字符串操作StringBuilder:可变对象,非线程安全,性能最高,适合单线程环境下的频繁字符串操作StringBuffer:可变对象,线程安全(synchronized方法),性能低于StringBuilder,适合多线程环境下的字符串操作使用场景:优先使用StringBuilder(单线程),多线程共享时用StringBuffer,不修改的字符串用String。
2025年-12月-13日
16 阅读
0 评论
Java性能调优
2025-12-13
HashMap的工作原理及线程安全问题
HashMap基于数组+链表/红黑树实现,通过哈希算法确定键值对存储位置。主要特点:使用hashCode()和equals()确定键的唯一性JDK8后链表长度>8时转换为红黑树默认负载因子0.75,触发扩容时容量翻倍线程不安全问题:多线程扩容可能导致死循环或数据丢失解决方案:使用ConcurrentHashMap或Collections.synchronizedMap()
2025年-12月-13日
22 阅读
0 评论
Java基础
2025-12-13
Hibernate 二级缓存在高并发更新场景下的数据一致性问题
在Hibernate二级缓存的高并发更新场景中,需综合采用以下方案确保数据一致性:使用READ_WRITE缓存策略配合软锁(Soft Lock)机制合理配置缓存失效时间(TTL)和最大条目数结合数据库事务隔离级别(推荐READ_COMMITTED)对高频更新实体启用@OptimisticLocking乐观锁在集群环境中使用分布式缓存(如Redis)替代本地缓存
2025年-12月-13日
25 阅读
0 评论
Hibernate
2025-12-13
使用固定大小线程池执行多线程任务
使用固定大小线程池执行多线程任务的步骤如下:通过Executors.newFixedThreadPool()创建线程池使用execute()方法提交Runnable任务任务执行完成后调用shutdown()关闭线程池
2025年-12月-13日
23 阅读
0 评论
多线程与线程池
2025-12-13
深入理解Java内存模型:volatile与synchronized在双重检测单例模式中的差异
在双重检测单例模式中,volatile关键字解决的核心问题是指令重排序导致的初始化不完整对象可见性问题:未使用volatile时,对象初始化可能被重排序为:1.分配内存 2.引用赋值 3.初始化构造,导致其他线程获取到未初始化的实例volatile通过内存屏障禁止指令重排序,保证写操作前的所有操作完成synchronized仅保证代码块内的原子性和可见性,无法防止重排序正确实现需同时使用volatile和synchronized双重检测
2025年-12月-13日
21 阅读
0 评论
Java基础
2025-12-13
如何为高并发低延迟交易系统选择和调优垃圾回收器?
在高并发低延迟场景下:首选ZGC/Shenandoah:JDK11+选择ZGC(-XX:+UseZGC)或Shenandoah(-XX:+UseShenandoahGC)实现亚毫秒级停顿关键调优参数:设置最大停顿时间目标(-XX:MaxGCPauseMillis=10),堆内存预留(-Xms==-Xmx)避免动态调整内存泄漏预防:使用-XX:NativeMemoryTracking=detail监控堆外内存,避免未释放的DirectByteBuffer监控手段:启用-Xlog:gc*=debug:file=gc.log配合JFR实时分析
2025年-12月-13日
19 阅读
0 评论
垃圾回收机制
2025-12-13
Spring MVC中@RequestMapping和@GetMapping注解的区别与用法
主要区别:@RequestMapping:通用请求映射,需手动指定HTTP方法(如method=RequestMethod.GET)@GetMapping:专门处理GET请求的快捷注解,无需指定method最佳实践:优先使用@GetMapping等专用注解简化代码复杂场景(如多方法支持)用@RequestMapping
2025年-12月-13日
17 阅读
0 评论
Spring MVC
2025-12-13
MyBatis 中如何安全高效地处理动态 IN 查询并防止 SQL 注入?
在 MyBatis 中处理动态 IN 查询需要解决三个核心问题:动态参数构建:使用 <foreach> 标签遍历集合SQL 注入防护:必须使用 #{} 预编译占位符性能优化:避免超过数据库 IN 条件限制(如 Oracle 的 1000 条限制)推荐解决方案:使用 <foreach> + #{} 构建安全查询通过分批查询解决大集合问题使用 @Param 注解明确集合名称
2025年-12月-13日
41 阅读
0 评论
MyBatis
2025-12-13
理解Java泛型中的类型擦除及其影响
Java泛型的核心机制是类型擦除:编译期间检查类型安全性运行时擦除泛型类型信息(替换为Object或边界类型)导致无法直接创建泛型数组等限制
2025年-12月-13日
19 阅读
0 评论
泛型
22
23
24
25
26