方法区存放什么 java虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?
浏览量:1606
时间:2021-04-03 19:25:01
作者:admin
java虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?
Java虚拟机的功能是执行Java字节码,其编码实现是一个死循环。每个循环都是获取字节码并执行字节码的过程,因此与其他程序没有本质区别。主流的JavaVM大多是用C语言实现的,然后用汇编语言辅助实现,用Java实现JavaVM的情况有一些,但不多。
下面是使用C语言在智能设备中实现虚拟机的一个片段。
此代码是短加法字节码的实现。
这段代码只是获取字节码并执行它。你认为JavaVM就是这样吗。
为了优化虚拟机的效率,很多人选择用汇编的方式重写执行频率高的代码。
小结是C语言实现的许多,将与汇编结合起来作为辅助工具。有其他语言,但不是主流。
请高手详细的解答一下JAVA的堆,栈,方法区,谢谢?
方法区域(非堆):它是所有线程共享的内存区域,用于存储类信息、常量、静态变量、编译器编译的代码以及虚拟机加载的其他数据。Java堆:它是虚拟机管理的最大内存区域,也是所有线程共享的内存区域。它是在虚拟机启动时创建的。这个内存区域的唯一用途是存储对象实例,几乎所有的对象实例都分配内存。Java堆是垃圾收集器管理的主要领域。Java虚拟机栈:线程是私有的,其生命周期与线程相同。在执行每个方法时,将同时创建一个堆栈帧来存储局部变量表、操作数堆栈、动态链接和方法出口等信息。每个方法都会被调用,直到执行完成,这与虚拟机中从堆栈到堆栈输出进程的堆栈帧相对应。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。