JVM简介

1.什么是JVM?

JVM(Java Virtual Machine)就是Java虚拟机,是Java技术的核心。属于程序虚拟机,专门为执行单个计算机程序而设计,不同于对物理计算机的仿真(如Visual
Box,VMware等系统虚拟机)等提供了一个完整的可运行的操作系统平台。

2.JVM的作用?

JVM就是二进制字节码的的运行环境,负责装载字节码到内部,解释/编译为对应平台上的机器指令(如把对应字节码文件)。
特点:
1、一次编译,到处运行
2、自动内存管理
3、自动垃圾回收功能
下图为其作用的大概描述

3.JVM的整体架构

针对HotSpot虚拟机(Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机)的内存结构图:
1.方法区和堆区是多线程共享的内存区域
2.java栈(jvm虚拟机栈),本地方法栈,程序计数器,是每个线程独享一份的在这里插入图片描述

4.JAVA代码执行流程

翻译字节码(保证响应时间)与JIT编译器(针对字节码指令中反复执行的代码再编译成机器指令并缓存到方法区,主要负责程序执行的性能)构成了执行引擎,是JVM里非常重要的部分。在这里插入图片描述

5.JVM的架构模型

基于栈的架构特点:
1.不需要硬件支持,可移植性好,更好的实现跨平台
2.设计实现简单,适用于资源受限制系统
3.依赖于栈,指令集小,更容易实现
基于寄存器的架构特点:
1.完全依赖于硬件,可移植性差
2.性能优秀执行更高效
总结:由于JVM跨平台的设计,JAVA的指令都是根据栈来设计的

6.JVM的生命周期

虚拟机的启动
通过引导类加载器(bootstrap class loader)创建一个初始类(Initial class)来完成,这个类是由虚拟机的具体实现指定的。前面一段话的意思是:假如我们想加载我们自己的自定义类StacktruTest(我们想吃苹果),但是我们连其父类等其他引用类都还没开始加载(苹果树还没有种植),所以我们得先种树(先启动java虚拟机),然后调用初始类的内部的一个main方法,把后续的类加载进来:在这里插入图片描述
虚拟机的执行
随着程序的执行而活着,随着程序的结束而死去。执行一个java程序的时候,真正的在执行一个叫做JAVA虚拟机的进程。
虚拟机的退出
程序正常执行结束,或者执行的时候出现异常或错误,或用Runtime.exit的方法,或者System.exit方法,或者Runtime.halt方法结束JVM虚拟机进程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值