尚硅谷2020最新版宋红康JVM教程-1-JVM简介

转载:https://www.bilibili.com/video/BV1PJ411n7xZ
参考:https://www.cnblogs.com/yanl55555/category/1686360.html

Java代码一次编译,到处运行

在这里插入图片描述

跨语言的JVM(虚拟机只关心字节码文件)

在这里插入图片描述

JVM的作用

在这里插入图片描述

JVM的位置

在这里插入图片描述
在这里插入图片描述

JVM的整体结构

在这里插入图片描述

  1. 方法区和堆区是所有线程共享的内存区域;而java栈、本地方法栈和程序计数器是运行是线程私有的内存区域。
  2. Java栈又叫做jvm虚拟机栈
  3. 方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器(JIT编译器,英文写作Just-In-Time
    Compiler)编译后的代码等数据。虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做
    Non-Heap(非堆),目的应该是与 Java 堆区分开来。(方法区是抽象的(永久代是具体的实现)在jdk8中又叫做元空间Metaspace)

Java代码执行流程

在这里插入图片描述

友情提示:

1、将java文件变成class文件,我们称为前端编译器也就是用javac命令去编译的,在后面的执行引擎,内部有一个JIT编译,这个就是后端编译器。

2、执行引擎:内部包含解释器,JIT编译器(预先编译电脑识别的代码),垃圾回收器。


java源程序=>编译javac=>字节码文件.class=>类装载子系统生成反射类(存入方法区)=>运行时数据区=>解释执行+编译执行=>操作系统(Win,Linux,Mac JVM)

JVM的架构模型

引言:
在这里插入图片描述

栈:
	指令集小,不需要硬件支持,具有跨平台性,比如jvm
	指令多,执行性比寄存器差
寄存器:
	依赖硬件,移植性差,比如android
	指令少,性能高

列子:
在这里插入图片描述

如果没有out文件(进入xxxx\maven_repo\xxxx\target\classes),输入反编译命令:javap -v xxx.class
Recompile:对选定的目标(Java 类文件),进行强制性编译,不管目标是否是被修改过。
在这里插入图片描述
在这里插入图片描述

总结:
在这里插入图片描述

JVM的生命周期

  1. 启动
    通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的.
  2. 执行
    执行一个所谓的Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程,以下测试:
    Thread.sleep(10000); // 线程睡眠
    jps // 查看当前系统所有运行中的java进程、java包名、jar包名及JVM参数等
    在这里插入图片描述
  3. 销毁
    程序正常执行结束
    程序异常或错误而异常终止
    操作系统错误导致终止
    某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且java安全管理器也允许这次exit或halt操作
    除此之外,JNI规范描述了用JNI Invocation API来加载或卸载Java虚拟机时,Java虚拟机的退出情况

JVM发展历程(可以忽略)

  1. Sun Classic VM
    在这里插入图片描述

  2. Exact VM
    在这里插入图片描述

  3. HotSpot VM :HotSpot指热点代码探测技术
    在这里插入图片描述

  4. BEA JRockit:(BEA 已被Oracle收购) 专注于服务端应用,世界最快的jvm之一
    在这里插入图片描述

  5. IBM J9
    在这里插入图片描述

  6. KVM和CDC/CLDC Hotspot
    在这里插入图片描述

  7. Azul VM
    在这里插入图片描述

  8. Liquid VM
    在这里插入图片描述

  9. Apache Harmony
    在这里插入图片描述

  10. Microsoft JVM
    在这里插入图片描述

  11. Taobao JVM: 目前已经在淘宝、天猫上线,替换了Oracle官方JVM;
    在这里插入图片描述

  12. Dalvik VM
    在这里插入图片描述

  13. Graal VM: Oracle 2018年4月公开,口号 Run Programs Faster Anywhere.最可能替代HotSpot的产品

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值