运行时数据区域
程序计数器
当前线程所执行的 字节码的行号指示器
Java堆
是虚拟机所管理的内存中最大的一块
存放对象实例
垃圾收集器内存管理区域
方法区
类信息
常量
静态变量
编译器编译后的代码缓存
也有很多人将其称为永久代,在jdk8后不再使用,改用与JRockit、J9一样在本地内存中实现的元空间(Meta- space)来代替
垃圾收集行为在这个区域的 确是比较少出现的
运行时常量池
存放编译期生 成的各种字面量与符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中
编译时存储哪种数据都必须符合规范上的要求才会被虚拟机认可、加载和执行
对于运行时常量池, 《Java虚拟机规范》并没有做任何细节的要求
直接内存
并不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中 定义的内存区域
本机直接内存的分配不会受到Java堆大小的限制,但是,既然是内存,则肯定还是会受到 本机总内存
设置-Xmx等参数信息