Java基础
文章平均质量分 76
不良手残
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单例线程池
该代码实现了一个单例线程池工具类ThreadPoolUtil,主要特点包括:1. 使用双重检查锁定实现线程安全的单例模式;2. 线程池配置动态计算核心线程数(50*CPU核数)和最大线程数;3. 支持任务队列(5000容量)和CallerRunsPolicy拒绝策略;4. 提供dispose方法处理集合任务并返回结果,以及consumer方法执行无返回值的消费操作;5. 支持通过信号量控制并发数(如样例中的40并发);6. 使用TtlRunnable解决线程池上下文传递问题原创 2026-07-14 17:23:06 · 44 阅读 · 0 评论 -
MyBatisPlus代码自动生成器
本文介绍了一个基于MyBatis-Plus Generator 3.5.x的代码自动生成工具类。该工具通过配置FastAutoGenerator能够自动生成Entity实体类(含Lombok注解)、Mapper接口及XML文件、Service层接口与实现类以及RESTful风格的Controller控制器。主要特性包括:使用MySQL数据库和FreeMarker模板引擎,采用下划线转驼峰的命名策略,支持文件覆盖和链式调用,输出目录指向wys-interaction模块。原创 2026-07-13 19:20:49 · 33 阅读 · 0 评论 -
Win11本地jdk1.8和jdk17双版本切换运行方法
本文介绍了JDK17的安装与环境变量配置方法。首先从Oracle官网下载.exe安装包进行安装,或选择解压版。安装版需删除特定目录下的Java相关文件夹。环境变量配置包括:1)新建CLASSPATH变量;2)设置JAVA_HOME变量(可配置多个版本如JDK8和JDK17)。最后将JDK安装目录添加至系统Path变量,并通过cmd命令java -version验证版本切换效果。注意修改环境变量后需重新打开cmd窗口查看。原创 2025-09-16 17:39:12 · 1204 阅读 · 0 评论 -
简单理解Java运行时数据区域(堆、栈、方法区等)
Java虚拟机(JVM)的内存分为多个运行时数据区域:程序计数器(线程私有,记录执行位置,无OOM)、虚拟机栈(存储栈帧,含局部变量表等,会StackOverflow)、本地方法栈(用于Native方法)、堆(共享内存,存储对象实例,GC主战场)、方法区(存储类信息,JDK8后改为元空间)。线程私有区域随线程销毁,共享区域需GC管理。理解这些区域有助于优化性能和诊断内存问题(如OOM)。JVM内存管理不断发展,如方法区从永久代改为元空间,新GC算法降低停顿。原创 2025-06-16 16:24:15 · 810 阅读 · 0 评论 -
Java队列总结分析
本文介绍了Java中9种常见队列的特性及适用场景,包括LinkedBlockingQueue、DelayQueue、LinkedTransferQueue等阻塞/非阻塞队列。通过示例代码展示队列的典型用法,如LinkedBlockingQueue的生产者-消费者模型、DelayQueue的定时任务处理等。对比了不同队列的边界、线程安全机制和适用场景,并给出选择建议:如需要阻塞操作用LinkedBlockingQueue,延迟任务用DelayQueue,高并发场景用ConcurrentLinkedQueue等原创 2025-06-13 15:41:54 · 1157 阅读 · 0 评论 -
Redisson + Lettuce 在 Spring Boot 中的最佳实践方案
Redisson与Lettuce共存方案,Lettuce负责基础KV操作(如缓存、会话管理),Redisson处理分布式锁、布隆过滤器等复杂场景,二者分工明确,避免功能重叠。Lettuce轻量高效,适合高并发读写;Redisson提供分布式能力,但资源开销较大。配置时需隔离连接池(Lettuce通过Spring Boot自动配置,Redisson独立配置文件),并监控各自性能指标。原创 2025-06-12 17:57:02 · 2141 阅读 · 0 评论 -
AI+IDEA最佳摸鱼实践——问题排查
文章摘要:本文介绍了在IDEA中集成通义零码AI插件辅助代码开发的方法,并通过批量鉴权功能优化的实战案例,展示了AI辅助分析问题的实用性。案例中,AI识别出多线程批量处理的5个潜在问题点:内存溢出、线程池耗尽、性能瓶颈、外部资源压力和CountDownLatch性能问题,并给出了分页处理、有界队列配置、CompletableFuture异步处理和缓存优化等解决方案。最终采用分批处理策略,将大数据量分成100一批进行并发处理,有效解决了批量鉴权偶现失败的问题,同时添加了完善的异常处理和日志记录。原创 2025-06-10 18:00:07 · 1778 阅读 · 0 评论 -
轻松拿捏Java 线程池——四种内置拒绝策略(Rejected Execution Handler)
Java线程池内置四种拒绝策略,当线程池无法接受新任务(工作队列满且线程数达上限)时触发:1)AbortPolicy(默认):抛出RejectedExecutionException,适用于关键任务场景;2)CallerRunsPolicy:由调用线程直接执行被拒任务,保证不丢失但影响调用者性能;3)DiscardPolicy:静默丢弃新任务,适用于可容忍丢失的非关键任务;4)DiscardOldestPolicy:丢弃队列中最旧任务并重试提交,适合最新任务更重要的场景。原创 2025-06-10 16:24:38 · 1708 阅读 · 0 评论 -
JDK 8、JDK 17和JDK 19综合对比分析
JDK 8、JDK 17和JDK 19在性能、特性、易用性及普及性等方面的综合对比分析,结合了各版本的核心改进和实际应用场景原创 2025-06-09 17:12:26 · 425676 阅读 · 0 评论 -
Java List实现多业务数据表定制化排序功能
文章摘要:当SQL无法实现特定排序时,可在Java代码中进行。针对MembershipLink对象的排序问题,原方案将整型转为字符串比较导致精度问题。改进方案:1) 使用Collections.sort直接比较整型数值实现降序;2) 采用Stream API进行链式排序。核心修正点:使用Integer.compare()代替字符串转换,调整参数顺序实现降序,并通过Collator支持中文拼音排序。两种方案均优先按sortValue降序,其次按成员名称拼音降序排列,解决了原方案的排序精度问题。原创 2025-05-29 16:11:07 · 303 阅读 · 0 评论 -
Win11启动Jar包乱码导致的问题及处理
开发程序时,涉及到编码都指定UTF-8,包括文件编码(开发工具,比如idea,设置好整个项目编码)、日志输出时的编码(logbck.xml)jar包在win11的cmd窗口直接运行,程序中涉及中文的数据处理存在问题(不能从数据库查询出数据、保存的数据是乱码等)设置整个jvm环境编码为utf-8:-Dfile.encoding=UTF-8。设置当前win窗口的编码为utf-8:chcp 65001。65001:UTF-8编码。原创 2024-12-05 11:30:27 · 2189 阅读 · 0 评论 -
Stream流Comparator.comparing().thenComparing()实现多字段综合排序
Stream流Comparator.comparing().thenComparing()实现多字段综合排序。很多情况下sql不好解决的多表查询,临时表,尽量用java8新特性stream进行处理,使用java8新特性。原创 2025-03-03 15:38:33 · 1536 阅读 · 0 评论 -
Java-stream流处理-实现数据分组合并
将下面的数据,根据project_number分组,合并生成一个新的数据结构。按照 project_number 分组,并生成一个新的。原创 2025-01-14 12:35:48 · 527 阅读 · 0 评论 -
按行读取批量日志文件,并将一部分数据写入Excel表格
按行读取批量日志文件,并将一部分数据写入Excel表格前言第一次写博客,也是第一次写读取文件导出为Excel表格的案例,其中去重,我试过很多方法,包括list集合循环去重,双重map去重,数组等,租最后才想到将两个判重的条件拼接作为key,最后导出表格时再遍历取出并截取。所以下面代码中许多注释的内容都是测试所使用的,有兴趣的可以看看,有好的建议可以提出来,一起学习!1.需求Java编写脚本...原创 2019-03-06 12:06:50 · 1267 阅读 · 0 评论
分享