java虚拟机存储区JVM有两类存储区:常量缓冲池和方法区
常量缓冲池用于存储类名称、方法和字段名称以及串常量
方法区则用于存储Java方法的字节码
对于这两种存储区域具体实现方式在JVM规格中没有明确规定
这使得Java应用程序的存储布局必须在运行过程中确定,依赖于具体平台的实现方式
JVM是为Java字节码定义的一种独立于具体平台的规格描述,是Java平台独立性的基础
尽管JVM还存在一些限制和不足,有待于进一步的完善,但无论如何,JVM的思想是成功的
对比分析:如果把Java原程序想象成我们的C++原程序,Java原程序编译后生成的字节码就相当于C++原程序编译后的80x86的机器码(二进制程序文件),JVM虚拟机相当于80x86计算机系统,Java解释器相当于80x86CPU
在80x86CPU上运行的是机器码,在Java解释器上运行的是Java字节码
Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的
Java解释器实际上就是特定的平台下的一个应用程序
只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本
当前,并不是在所有的平台下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。