我们知道在jvm中存放了不少数据,那么存放数据的地方叫做存储区。想必大家还不知道存储区是分为两种类型的,常量缓冲池和方法区。相信很多人还没有接触到这个概念,本篇对java中jvm的存储区进行的内容的整理,下面一起来看看这两种存储取的概念和区别吧。

1、分类

jvm有两种类型的存储区:常量缓冲池和方法区。常量缓冲池用于存储类名、方法名和字段名以及字符串常量。方法区用于存储java方法的字节码。jvm规范中没有规定这两个存储区域的具体实现。因此,java应用程序的存储布局必须在运行过程中确定,这取决于具体平台的实现。

jvm是对java字节代码定义的独立平台的规格说明,是java平台独立性的基础。目前jvm还存在一些限制和不足,需要进一步完善,但无论如何,jvm的思想都是成功的。

2、比较分析

将java源程序想象为我们的c++源程序,java源程序编译后生成的字节代码相当于c++源程序编译后的80×86机器代码(二进制程序文件),jvm虚拟机相当于80×86计算机系统在80x86cpu运行的是机器代码,在java解释器运行的是java字节代码。

java解释器相当于运行java字节码的cpu,但这种cpu不是通过硬件实现的,而是通过软件实现的。java解释器实际上是特定平台下的应用程序。只要实现了特定平台下的解释器程序,java字节码就可以通过解释器程序在该平台下运行,这是java跨平台的根本。目前,并非所有平台下都有相应的java解释器程序,这也是java不能在所有平台下运行的原因,只能在实现java解释器程序的平台下运行。

知识点扩充:

jvm是java virtual machine(java虚拟机)的缩写,jvm是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 jvm屏蔽了与具体操作系统平台相关的信息,使java程序只需生成在java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。jvm在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

1、jvm是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。

2、jvm的体系结构:

类装载器(classloader)(用来装载.class文件)

执行引擎(执行字节码,或者执行本地方法)

运行时数据区(方法区、堆、java栈、pc寄存器、本地方法栈)

到此这篇关于java jvm两种存储区的类型知识点讲解的文章就介绍到这了,更多相关java之jvm两种存储区的类型内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!