-
Java 无法 debug Finalizer 类
需求 看一下Finalizer如何被初始化,以及完整调用链路。 无法 debug 原因 Finalizer在JVM启动时就已经加载,即:还没加载到我们自己写的m
2023-06-28, Views: 544 , Topics: Java
-
Java jps 无法显示进程 id
现象 Linux上使用jps查看进程id,无法显示运行的Java进程。 命令原理 jps、jstack、jcmd等命令默认查看的是/tmp/hsperfdata
-
Java jmap 强制 attach 到 JVM 报错
现象 使用jmap -F导出堆栈信息,抛出以下错误: Error: -F option used Cannot connect to core dump or
-
Java 查看 jar 包内容
需求 查看jar包中应用的具体依赖的版本。 jar 命令 不解压直接查看 -t、--list:查看压缩文件目录。 -f:指定查看的压缩文件。 jar -tf t
-
Java 17 中使用 ScriptEngine 解析 JavaScript 脚本
ScriptEngine ScriptEngine位于javax.script包下,Java 17中依然可用(移除的是Nashorn模块)。 ScriptEng
2023-06-22, Views: 4243 , Topics: Java JavaScript
-
Java String format 字符串左对齐与右对齐
左对齐 %-15s: 左对齐15个字符,长度不满15,用空格补全。长度超出15,将从字符串尾部截断。 String.format("%-15s", System
2023-06-21, Views: 1724 , Topics: Java
-
Java 获取垃圾回收队列长度
反射获取 Java 8及之前可以使用反射,获取Finalizer中的queue字段,然后获取长度。 但Java 9模块化之后不可用。 try { Cla
2023-06-20, Views: 655 , Topics: Java
-
Java 线程池中非核心线程开启的时机
执行三步曲 第一步 核心线程数未满时,开启新的核心线程。 第二步 核心线程数已满,加入等待队列。 第三步 等待队列已满,开启非核心线程。超过非核心线程上限,执行
2023-06-19, Views: 982 , Topics: Java
-
Java 微基准测试 JMH
添加依赖 <dependency> <groupId>org.openjdk.jmh</groupId> &
-
Java 命令行参数浏览器
作用 查看Java不同版本的JVM参数,查看参数是否过期、删除。 不同JVM发布商之前的区别。 VM Options Explorer 链接 https://c
-
Java 命令行参数参考手册
Java 17 https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html Java
-
Java 查看诊断 JVM 的命令行参数
命令 使用-XX:+UnlockDiagnosticVMOptions解锁诊断JVM的命令行参数,通过-XX:+PrintFlagsFinal参数查看参数。 j
-
Java 查看实验性质的 JVM 命令行参数
命令 使用-XX:+UnlockExperimentalVMOptions解锁实验性质的命令行参数,通过-XX:+PrintFlagsFinal参数查看参数。
-
Java 13 JVM 参数 FlightRecorder 被标记为过时
警告信息 OpenJDK 64-Bit Server VM warning: Option FlightRecorder was deprecated in
-
Java 8 Stream 中的 group by 分组
需求 使用Collectors的groupingBy完成各种分组操作。 Bean 类 @Data class Student { private Str
2023-06-09, Views: 1274 , Topics: Java
-
Java 11 默认垃圾回收器竟然不是 G1
疑惑 Java 9之后JVM的默认垃圾回收器就是G1了,但今天在Kubernetes容器Pod中查看时发现用的竟然是SerialGC。 查看命令行参数 可以看到
-
Java 环境变量 JDK_JAVA_OPTIONS 与 JAVA_TOOL_OPTIONS 差别
JDK_JAVA_OPTIONS JDK_JAVA_OPTIONS环境变量仅作用于java命令启用的程序(java -jar example.jar)。 JAVA_TOOL_OPTIONS JAVA
-
Java 查看容器信息的几种方式
注意 只能在Linux下该命令才有效。 命令 Java 11 及之后版本 方法一 jcmd 1 VM.info 输出:截取了最后一段System系统信息的输出,
-
Java 11 在容器中无法获取正确的 CPU 处理器个数
现象 使用ForkJoinPool时,发现线程个数始终是1。 ForkJoinPool.getCommonPoolParallelism() 使用Managem
-
Java 判断字符串是否是数字
Java Character API 使用Character的isDigit静态方法来判断字符是否是数字。 Character.isDigit(char) 结合
2023-06-04, Views: 988 , Topics: Java