java虚拟机--JVM

一 、什么是java虚拟机—JVM
  • 抽象规范
  • 一个具体的实现
  • 一个运行中的虚拟机实例
二、 JVM的生命周期

java程序启动时虚拟机实例诞生,程序关闭推出时,虚拟机实例消亡。
一个程序对应一个虚拟机实例。

main()方法作为程序的初始线程的起点,任何其他线程都是由这个初始线程启动的
虚拟机内部包含两种线程:守护线程和非守护线程,也叫后台线程和普通线程。只要非守护线程结束,守护线程不管结束没结束都得停止。
只要有任何非守护线程运行,java程序就在运行,虚拟机就存活。
当所有非守护线程都终止时,虚拟机实例将自动退出

三、虚拟机体系结构

类装载器子系统,内存区, 执行引擎
在这里插入图片描述

  • 类装载器

装入类型(类和接口),也就是加载编译后的class文件

  • 运行时数据区(内存区)
    用来存储程序运行时数据,例如字节码,从已装载的class文件中得到的其他信息,程序创建的对象,传递给方法参数,返回值,局部变量,以及运算的中间结果。
    方法区和堆由虚拟机中所有线程共享。
    每个线程对应一个java栈和一个pc寄存器,这些内存区都是线程私有的,不能相互访问
  • 方法区:存放类信息,方法,静态变量等
  • 堆: 存放创建的对象,包括成员变量信息
  • java栈:存储方法线程中方法调用的状态。
    由栈桢构成,栈桢对应一个方法调用的状态。
    线程每调用一个方法,就压入一个栈桢(传递给方法参数,返回值,局部变量,以及运算的中间结果)
  • pc寄存器:指向下一条将被执行的指令。
    本地方法栈:本地方法调用的状态,是以某种依赖于具体实现的方式存储在本地方法栈中,也可能是在寄存器或者其他耨写特定实现相关的的内存区中。
  1. 执行引擎

执行 包含在装在类中方法中的指令

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值