【JVM虚拟机篇05】方法区

32 阅读1分钟

方法区

  • 是各个线程共享的内存区域
  • 主要存储类的信息、运行时常量池
  • 虚拟机启动时候创建,关闭虚拟机时释放
  • 如果方法区域中的内存无法满足分配请求时,则抛出OutOfMemoryError:Metaspace

image.png

代码:设置虚拟机元空间大小,-XX:MaxMetaspaceSize=8m image.png

常量池

可以看作是一张表,虚拟机指令根据这张表查找要执行的类名、方法名、参数类型、字面量等信息

javap -v xxxx.class 查看字节码结构(类的基本信息、常量池、方法定义)

image.png

image.png

运行时常量池

常量池是*.class文件中的,当该类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址

image.png