
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在通过自学或者参加达内培训来学习软件编程开发等互联网技术,而本文我们就简单来了解一下,java编程JVM基本结构。
JVM之运行时常量池(RuntimeConstantPool)
基本特性:
方法区的一部分,在方法去中分配,加载泪或者接口后就创建运行时常量区。
class文件每一个类或接口的常量池表(constant_pooltable)的运行时表现形式,
包括编译期的数值字面量和运行期的方法或者字段引用
ref:class文件结构
JVM之PC寄存器(ProgramCounterRegister)
基本特性:
当前线程执行的字节码的行号指示器。
Java虚拟机支持多个线程同时执行,每一个线程都有自己的pc寄存器。
任意时刻,一个线程都只会执行一个方法的代码,称为该线程的当前方法,对于非native方法,保存正在执行的字节码的指令地址,native方法,则为undifine
容量大小至少需要能够存储一个returnAddress类型的数据或者与平台相关的本地指针的值
JVM之方法区(MethodArea)
基本特性:
线程共享区域,存储被JVM加载的类信息、常量、静态变量、即时编译器编译的代码等
堆的逻辑部分,不限定方法去内的内存位置和编译代码的管理策略,不限定实现垃圾回收
容量可不定也可动态扩展,不要求物理连续
回收主要针对常量池的回收,和类型的卸载
HotSpot虚拟机方法区:
使用永久代实现方法区。不包含字符串常量池。
JVM之堆(Heap)
基本特性:
虚拟机启动时创建的线程共享的内存区域,所有实例对象和数组对象分配内存的区域
GC垃圾手机管理器管理的主要区域,GC堆
容量可以固定,也可以动态扩展,自动收缩-Xmx大堆大小-Xms小、初始堆大小
所使用的内存不需要保证连续性,即不需要物理上的连续性,只需要逻辑上的连续性。
分配需要的容量超过提供的容量,或者扩展也无法满足的时候,抛出OutOfMemoryError
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。