-
Java 获取日期所在月的最后一天
代码 使用with(LocalTime.MAX)会得到当天最后时刻的时间。 使用with(TemporalAdjusters.lastDayOfMonth())会得到当天所在月份的最后一天的时刻。
2026-01-09, Views: 20 , Topics: Java
-
Java Optional ofNullable 处理空指针异常
示例 JSON字符串 { "age": null, "address": null } Java代码构造JsonNode ObjectMapper objectMapper = n
2026-01-08, Views: 32 , Topics: Java
-
Java Stream collect 收集的同时将主键加入到 Set 集合中
peek 使用Stream中的peek中间操作符,当元素流经该操作符时,进行相应的操作。 伪代码 List<User> users = List.of(user1, user2...); Set<
2026-01-07, Views: 33 , Topics: Java
-
Java split 方法使用 limit 参数保留分隔符最后一个空白字符
需求 有字符串1,2,3,4,5,6,7,,需要按,分隔。 代码 split(",") String[] fields = "1,2,3,4,5,6,7,".split(","); // fiel
2026-01-06, Views: 57 , Topics: Java
-
Java 不同进制间的转换
八进制数字 Octal Number 在Java中以0开头的数字为八进制,如012。 十进制数字 Decimal Number 在Java中,正常自然数都是十进制数字。 十六进制数字 Hex Num
2026-01-05, Views: 68 , Topics: Java
-
Java 类文件在 Jar 包中多版本共存
目标 Extend the JAR file format to allow multiple, Java-release-specific versions of class files to
-
Java 在启动参数中开启 JFR 指定事件采集
JFR 配置 default.jfc配置内容片段。 <event name="jdk.VirtualThreadStart"> <setting name="enabled">false</se
-
Java25 JFR 新增 Method Timing 和 Method Tracing 事件统计方法执行时间和堆栈
说明 We enhance default.jfc and profile.jfc with two new options, method-timing and method-trace, wh
-
Java25 jcmd 新增 Thread.vthread_scheduler 命令查看虚拟线程调度器信息
语法 jcmd <pid> Thread.vthread_scheduler 查看帮助 > jcmd 1 help Thread.vthread_scheduler 1: Thread.vthre
-
Java25 jcmd Thread.vthread 相关命令源码解析
Attach Listener Attach Listener通过监听jcmd的命令,执行相关逻辑。 at java.util.concurrent.ForkJoinPool.<clinit>(Fo
-
Java25 使用 VirtualThreadSchedulerMXBean 查看虚拟线程调度器 ForkJoinPool 信息
代码 import jdk.management.VirtualThreadSchedulerMXBean; import java.lang.management.ManagementFactor
-
Java25 中虚拟线程仍然会被 pin 住的 3 种情况
JEP 491 在JEP 491中解决了虚拟线程在synchronized锁内遇到阻塞时不能从载体线程上卸载的问题后,还列举了3种还没解决的场景。 但这些场景发生的概率很小,且都是编码可控。 解析类
-
Java 使用 jcmd 命令查看虚拟线程堆栈信息
Thread.dump_to_file jcmd中的Thread相关命令有Thread.print和Thread.dump_to_file(还有Thread.vthread相关命令)。 Thread
-
Java21 和 Java25 中获取虚拟线程挂载的平台线程
反射 需在虚拟线程中调用invoke方法,返回的是ForkJoinWorkerThread。 通过ForkJoinWorkerThread还是获取对应的ForkJoinPool。 Class<Thr
-
Java 获取虚拟线程挂载的平台线程对应的 ForkJoinPool 实例
反射获取 VirtualThread类中的私有静态final变量DEFAULT_SCHEDULER。 import java.lang.reflect.Field; import java.util
-
Java21 虚拟线程在 synchronized 代码块中被 pin 住问题复现
测试代码 public class VirtualThreadSynchronizedPinnedDemo { // 共享锁对象:所有虚拟线程会竞争这把锁 private stati
-
Java 虚拟线程调度器 ForkJoinPool 自定义参数设置
主要参数 parallelism maxPoolSize minRunnable 参数设置 方式一 程序启动时设置。 System.setProperty("jdk.virtualThreadS
-
Java 虚拟线程 ForkJoinPool 工作线程运行情况
程序初始运行时 当程序初始运行时,ForkJoinPool并不会创建工作线程。 PS \openjdk-25\bin> jcmd 14704 Thread.print 14704: 2025-10-
-
Java 为虚拟线程配置线程池(执行器)
作用 为虚拟线程配置线程池(应叫做:执行器)的作用:使用执行器去开启虚拟线程,并用执行器管理虚拟线程的生命周期。 本质 为虚拟线程创建的ExecutorService,本质是虚拟线程创建器和任务提交
-
Java 虚拟线程启动流程及调度器源码解析
启动虚拟线程方式 方式一 Thread.ofVirtual().start(() -> { }); 方式二 Runnable runnable = () -> {}; Thread.start