You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java线程转储中defined_classes字段的含义是什么?

Java线程转储中defined_classes字段的含义

在Java 19及更高版本中,执行jstack -e命令生成的线程转储里,defined_classes字段代表的是当前线程主动触发或直接参与定义的类的总数。

具体说明:

  • 当线程执行代码时遇到未加载的类,会触发类加载流程;若该类是首次被JVM定义(将字节码转换为JVM可识别的内部类结构),这个计数就会加1。
  • 该数值仅统计当前线程自身参与的类定义操作,并非整个JVM的全局类定义总量。
  • 它可用于排查类加载相关的性能问题,比如定位频繁触发类加载、类加载逻辑集中的线程,辅助分析这类线程的资源消耗情况。

示例线程转储片段:
"Thread-0" #25 [23276] prio=5 os_prio=0 cpu=0.00ms elapsed=593.30s allocated=6720B defined_classes=1 tid=0x0000023dafe60b20 nid=23276 waiting for monitor entry [0x000000796a4ff000]

内容的提问来源于stack exchange,提问作者AlexElin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 15:30:54