
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Java虚拟机的学习与应用是每一位Java程序员都应该熟练掌握的一个编程技术,而本文我们就通过案例分析来简单了解一下,Java虚拟机功能概述与架构应用。
1、全球概览
JVM是底层操作系统的抽象。它确保无论JVM在什么硬件或操作系统上运行,相同的代码都将以相同的行为运行。例如:
无论JVM是在16位/32位/64位操作系统上运行,原始类型int的大小始终是从-2^31到2^31-1的32位有符号整数。
无论底层操作系统/硬件是大端还是小端,每个JVM都以大端顺序(高字节在前)存储和使用内存中的数据。
注意:有时,JVM实现的行为与另一个不同,但通常是相同的。
2、JVM功能概述
JVM解释通过编译类的源代码产生的字节码。尽管JVM一词代表“Java虚拟机”,但它可以运行其他语言,如scala或groovy,只要它们可以编译成java字节码。
为了避免磁盘I/O,字节码由运行时数据区域之一中的类加载器加载到JVM。这段代码一直保留在内存中,直到JVM停止或类加载器(加载它的)被销毁。
加载的代码然后由执行引擎解释和执行。
执行引擎需要存储数据,例如指向正在执行的代码行的指针。它还需要存储在开发人员代码中处理的数据。
执行引擎还负责处理底层操作系统。
注意:如果经常使用,许多JVM实现的执行引擎会将字节码编译为本机代码,而不是总是解释字节码。它被称为即时(JIT)编译,大大加快了JVM。编译后的代码临时保存在通常称为代码缓存的区域中。由于该区域不在JVM规范中,因此我不会在本文的其余部分讨论它。
3、基于堆栈的架构
JVM使用基于堆栈的体系结构。虽然它对开发人员来说是不可见的,但它对生成的字节码和JVM架构有巨大的影响,这就是为什么我将简要解释这个概念的原因。
JVM通过执行Java字节码中描述的基本操作来执行开发人员的代码。操作数是指令对其进行操作的值。根据JVM规范,这些操作要求参数通过称为操作数堆栈的堆栈传递。
这种运行方式称为基于堆栈的架构。还有其他处理基本操作的方法,例如基于寄存器的体系结构将操作数存储在小寄存器中而不是堆栈中。桌面/服务器(x86)处理器和以前的android虚拟机Dalvik使用这种基于寄存器的架构。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。