Java虚拟机运行时常量池-用HotSpot Debugger看

javac -encoding utf-8 com/xxx/Main.java
cd ..
cd ..
java com.xxx.Main
(base) PS > jps -l
29024 com.xxx.Main
(base) PS > jhsdb hsdb --pid 29024

运行时常量池Runtime Constant Pool

方法区
image

hello world代码

package com.xxx;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.printf("Hello and welcome!");

        for (int i = 1; i <= 5; i++) {
            System.out.println("i = " + i);
            System.out.println("程序已暂停,按下回车键继续...");
            new Scanner(System.in).nextLine();
        }
    }
}

JVM常量

JVM_CONSTANT_Utf8

最基础的常量。它存储的是真正的字符串文本。
内容:你的类名Main、方法名、字段名,以及你代码里写死的字符串字面量(比如 "Hello World")。

JVM_CONSTANT_Methodref (方法的“地址簿”)

代表一个类中的具体方法。
结构:它包含两个索引:一个指向所属的 Class,另一个指向方法的名称和类型(NameAndType)。

我的jdk

graalvm-jdk-24.0.1+9.1
posted @ 2026-01-09 11:10  liv_vil  阅读(2)  评论(0)    收藏  举报