jvm虚拟机问题,求解

类字节码文件被加载到Java虚拟机中后,在Java虚拟机里是如何存储类的名称,方法,属性,构造方法,常量和变量?即在内存中的数据结构是什么样的数据结构

字节码如何被JVM保存?

被保存在方法区,主要是分成:访问权限和类的属性(access_flags)、类索引父类索引和接口索引集合、常量池、字段表、方法表、和字段和方法结构中的属性表(方法的内容字节码就是存在属性表的code[]属性中)。 可以理解成Class的结构就是一张表,在执行的时候提供需要的信息。大哥我百度的,应该对你有帮助,我也正好学习了一下😁

每个类jvm会生成一个class对象 这个对象里就包含属性值以及方法 该对象是放在方法区的

JVM内存主要分为堆、虚拟机栈、本地方法栈、方法区、程序计数器等。

  • 类信息、常量、静态变量存放在方法区中
  • 类创建的对象存放在堆中
  • 堆中对象的调用方法时会使用到虚拟机栈,本地方法栈,程序计数器
  • 虚拟机栈对应的是方法的执行过程,本地方法栈是用来调用本地方法的执行过程
  • 线程下一条将要执行的指令存放在程序计数器
  • 方法执行时每行代码由解释器逐行执行
  • 和操作系统打交道需要调用本地方法接口
  • 热点代码由JIT编译器即时编译
  • 垃圾回收机制回收堆中资源

如有帮助,请采纳,十分感谢!

阅读周志明的《深入理解Java虚拟机》