JVM教程-1-JVM简介

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

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

JVM教程-1-JVM简介_第1张图片

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

JVM教程-1-JVM简介_第2张图片

JVM的作用

JVM教程-1-JVM简介_第3张图片

JVM的位置

JVM教程-1-JVM简介_第4张图片
JVM教程-1-JVM简介_第5张图片

JVM的整体结构

JVM教程-1-JVM简介_第6张图片

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

Java代码执行流程

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

JVM的架构模型

引言:
JVM教程-1-JVM简介_第8张图片

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

列子:
JVM教程-1-JVM简介_第9张图片

如果没有out文件(进入xxxx\maven_repo\xxxx\target\classes),输入反编译命令:javap -v xxx.class
Recompile:对选定的目标(Java 类文件),进行强制性编译,不管目标是否是被修改过。
JVM教程-1-JVM简介_第10张图片
JVM教程-1-JVM简介_第11张图片

总结:
JVM教程-1-JVM简介_第12张图片

JVM的生命周期

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

JVM发展历程(可以忽略)

  1. Sun Classic VM
    JVM教程-1-JVM简介_第14张图片

  2. Exact VM
    JVM教程-1-JVM简介_第15张图片

  3. HotSpot VM :HotSpot指热点代码探测技术
    JVM教程-1-JVM简介_第16张图片

  4. BEA JRockit:(BEA 已被Oracle收购) 专注于服务端应用,世界最快的jvm之一
    JVM教程-1-JVM简介_第17张图片

  5. IBM J9
    JVM教程-1-JVM简介_第18张图片

  6. KVM和CDC/CLDC Hotspot
    JVM教程-1-JVM简介_第19张图片

  7. Azul VM
    JVM教程-1-JVM简介_第20张图片

  8. Liquid VM
    JVM教程-1-JVM简介_第21张图片

  9. Apache Harmony
    JVM教程-1-JVM简介_第22张图片

  10. Microsoft JVM
    JVM教程-1-JVM简介_第23张图片

  11. Taobao JVM: 目前已经在淘宝、天猫上线,替换了Oracle官方JVM;
    JVM教程-1-JVM简介_第24张图片

  12. Dalvik VM
    JVM教程-1-JVM简介_第25张图片

  13. Graal VM: Oracle 2018年4月公开,口号 Run Programs Faster Anywhere.最可能替代HotSpot的产品JVM教程-1-JVM简介_第26张图片

你可能感兴趣的:(java,java,jvm,操作系统,jdk)