后端开发
标签:后端开发
文章JVM性能优化之GC日志分析
GC日志分析是JVM性能优化的关键。通过配置JVM参数可获取详细的GC日志,记录内存回收情况。利用GCeasy等工具可将日志数据可视化,生成内存使用、吞吐量、停顿时间等图表,帮助开发者快速定位内存泄漏、频繁GC等性能瓶颈,从而进行针对性优化。
文章Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合
本文全面介绍了Java 8 Stream API的使用,通过大量实例详细讲解了流的创建、遍历、筛选、聚合、映射、归约、收集、排序等核心操作。Stream以声明式处理集合数据,使代码更简洁高效,并支持并行流以提升性能。
文章Spring中的Jdk动态代理与Cglib动态代理
AOP动态代理包括JDK代理和Cglib代理。JDK代理基于接口使用反射,Cglib代理基于类生成子类。区别:JDK需接口,Cglib不需;Cglib目标类不能为final。
文章深入理解线程池--ThreadPoolExcutor
Java线程池通过ThreadPoolExecutor实现,使用corePoolSize、maximumPoolSize等参数管理线程。任务先由核心线程处理,队列满时创建额外线程,超过限制时触发饱和策略。常见阻塞队列包括ArrayBlockingQueue和LinkedBlockingQueue,四种标准线程池如newFixedThreadPool提供不同。
文章过滤文本中的敏感词汇
蘑菇博客作者陌溪发现留言区存在不当言论,为净化评论环境,采用字典树技术实现敏感词过滤系统。该系统通过读取敏感词文件构建前缀树,并设计过滤算法将敏感词自动替换为星号,有效提升了评论管理的自动化水平。
文章记一次dump文件分析历程
核心服务内存溢出,分析发现是File.deleteOnExit()方法导致内存泄漏。该方法将临时文件路径存入LinkedHashSet,直到JVM关闭才删除,造成内存累积。建议改用File.delete()立即删除文件。
Java序列化和反序列化为什么要实现Serializable接口
Java序列化将对象转换为字节序列,用于持久化或网络传输。实现Serializable接口使JVM自动处理序列化。显示指定serialVersionUID确保类修改后反序列化兼容,避免版本不一致错误。
文章List复制:深拷贝和浅拷贝用法及区别
本文介绍了Java中List的浅拷贝和深拷贝。浅拷贝只复制引用,导致源列表和目标列表共享对象,修改一个会影响另一个;深拷贝创建新对象并复制内容,使两者独立。文章提供了实现方法并通过测试验证了区别。
SpringBoot启动时让方法自动执行的几种实现方式
SpringBoot项目启动时提前加载数据或执行方法的五种方式:实现ServletContextAware或ServletContextListener接口;使用@PostConstruct注解或静态代码块;实现ApplicationRunner或CommandLineRunner接口。