方法区
- 是各个线程共享的内存区域
- 主要存储类的信息、运行时常量池
- 虚拟机启动时候创建,关闭虚拟机时释放
- 如果方法区域中的内存无法满足分配请求时,则抛出OutOfMemoryError:Metaspace
代码:设置虚拟机元空间大小,-XX:MaxMetaspaceSize=8m
常量池
可以看作是一张表,虚拟机指令根据这张表查找要执行的类名、方法名、参数类型、字面量等信息
javap -v xxxx.class 查看字节码结构(类的基本信息、常量池、方法定义)
运行时常量池
常量池是*.class文件中的,当该类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址