JAVA基础——JVM简介及程序计数器

JVM

​ JVM(Java 虚拟机),是一种用于计算设备的规范,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算功能来实现,引入 JVM 后,Java 语言在不同平台上运行时不需要重新编译,它屏蔽了与具体平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的字节码文件,就可以在多种平台上不加修改的运行

JVM 基本结构

​ 首先,JVM 分为线程共享区和线程独占区两部分,线程共享区即线程公有,可以所有线程共享,向下分为方法区和 Java 堆,线程独占区即线程私有,向下分为虚拟机栈、本地方法栈以及一会会详细介绍的程序计数器

具体结构如图:

JVM 程序计数器

​ 程序计数器是一个记录着当前线程所执行到的字节码行号

程序计数器的特点

  1. 线程隔离,每个线程工作室都有属于自己的独立计数器

  2. 执行 Java 方法时,程序计数器是有值的,且记录的是正在执行的字节码指令的地址

  3. 执行本地方法时,程序计数器的值为空(Undefined),因为 native 方法时 java 通过 JNI(Java 本地接口)直接调用本地的 C/C++ 库,由于此方法是通过 C/C++ 实现的,无法生成字节码文件,所以其在执行时内存的分配不是由 JVM 决定的

  4. 程序计数器占用的内存很小,在进行 JVM 内存计算时,可以忽略

  5. 另外,JVM 中只有程序计数器没有规定任何 OutOfMemoryError

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值