JVM的体系结构

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

 

JVM的体系结构

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

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

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

 

JVM运行时数据区

 

第一块:PC寄存器

PC寄存器是用于存储每个线程下一步将执行的JVM指令,如该方法为native的,则PC寄存器中不存储任何信息。

第二块:JVM

JVM栈是线程私有的,每个线程创建的同时都会创建JVM栈,JVM栈中存放的为当前线程中局部基本类型的变量java中定义的八种基本类型:booleancharbyteshortintlongfloatdouble)、部分的返回结果以及Stack Frame非基本类型的对象在JVM栈上仅存放一个指向堆上的地址。

第三块:堆(Heap

它是JVM用来存储对象实例以及数组值的区域,可以认为Java中所有通过new创建的对象的内存都在此分配,Heap中的对象的内存需要等待GC进行回收。

第四块:方法区域(Method Area)

方法区域存放了所加载的类的信息(名称、修饰符等)、类中的静态变量、类中定义为final类型的常量、类中的Field信息、类中的方法信息,当开发人员在程序中通过Class对象中的getName、isInterface等方法来获取信息时,这些数据都来源于方法区域,同时方法区域也是全局共享的, 在一定的条件下它也会被GC,当方法区域需要使用的内存超过其允许的大小时,会抛出OutOfMemory的错误信息。

第五块:运行时常量池(Runtime Constant Pool)

存放的为类中的固定的常量信息、方法和Field的引用信息等,其空间从方法区域中分配。

第六块:本地方法堆栈(Native Method Stacks)

JVM采用本地方法堆栈来支持native方法的执行,此区域用于存储每个native方法调用的状态。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java体系结构特性主要包括跨平台性、安全性、简单性和可移植性。 首先是跨平台性,即Java程序可以在不同的操作系统上运行。这是因为Java程序在编译时会被转换成字节码而不是机器码,而字节码可以由Java虚拟机(JVM)来解释执行。不同的操作系统只需要安装相应的JVM即可运行相同的Java程序,极大地提高了程序的可移植性。 其次是安全性,Java引入了一系列安全机制来保护计算机和网络的安全。Java的安全性主要通过字节码校验、安全沙箱和安全管理器来实现。字节码校验可以检查Java程序的合法性,以防止恶意代码的执行;安全沙箱可以限制Java程序对计算机资源的访问,确保程序不能越权操作;安全管理器可以定义安全策略,对程序的访问进行控制。 再次是简单性,Java的设计目标之一就是简单易学。Java的语法相对简单,去除了C++中复杂的特性,同时提供了垃圾回收和自动内存管理等功能,减轻了程序员的工作负担。Java还提供了丰富的类库,使得开发人员能够更加便捷地编写代码。 最后是可移植性,即Java程序可以在不同的硬件和操作系统上运行。通过Java虚拟机的存在,Java程序不需要针对特定的硬件和操作系统进行优化和适配,使得程序的移植性非常好,减少了开发人员的工作量。 综上所述,Java体系结构特性的跨平台性、安全性、简单性和可移植性使得Java成为一种广泛应用于各种领域的编程语言。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值