引用oracle官网对JDK的概述,里面很明确指出jdk、jre、jvm的关系,jdk是包括jre的,而jvm是jre是一部分
引用官网的图片进行描述:
JVM:java virtual machine,java虚拟机是执行 Java 程序的虚拟机的实现,是一个抽象的计算机器。
JVM运行过程涉及的组件:
引用Oracle官网的图例表示HotSpot JVM的架构设计:如图首先java文件经过javac编译成class类文件,经过类加载器,加载到JVM,再通过执行引擎执行。HotSpot JVM支持高并发和拓展性也很好。
JVM的高性能是由支持并发的垃圾收集器和动态JIT编辑器保证的。HotSpot JVM JIT 编译器在 Java 应用程序运行时做出动态优化决策,并生成针对底层系统架构的高性能本地机器指令
HotSpot JVM的高移植性, Write Once Run Anywhere:
ok,现在比较详细介绍HotSpot JVM运行过程需要的3个重要组件类加载器、运行时数据区、执行引擎
JVM的类加载机制分为五个部分:加载,验证,准备,解析,初始化
运行时数据区,是java虚拟机定义的在程序执行期间使用的各种运行时的数据区。这些运行时数据区分为两种,一种是在java虚拟机启动时创建,仅在java虚拟机退出时才被销毁,这种可以理解为线程共享的。另外一种是数据区是针对每个线程的,是在创建线程时创建的,并在线程退出时销毁这个数据区,这种可以理解为线程私有的。
执行引擎主要有如下3个部分:Interpreter(解释器)、Just-In-Time (JIT) Compiler(即时 (JIT) 编译器)、Garbage Collector(垃圾收集器)
一旦类加载器加载并验证字节码,解释器就会逐行执行字节码,这个过程是比较慢的,一个方法被多次调用时,每次都要执行
JVM 自动监视正在执行的方法。一旦一个方法符合 JIT 编译的条件,它就会被JIT编辑器编译成机器代码。这种方法被称为热方法。这个编译过程发生在单独的JVM线程上。编译成机器码后,程序运行速度是更快的。
JVM的垃圾收集器主要用于对运行时数据区的内存进行回收整理,保证内存空间的正常使用
Java 运行时环境 (JRE) 是一组用于运行 Java 应用程序的软件组件
JRE 的核心组件包括:
JVM上一节已经做了比较详细的描述,所以这里只介绍运行 Java 程序所需的类和属性文件
属性文件位于/jre/lib/内的不同文件夹中
Java Development Kit (JDK) 提供用于开发、编译、调试和执行 Java 程序的环境和工具。JDK的核心组件包括:
现在,我们将专注于各种开发工具
基本工具,整理自https://www.baeldung.com/jvm-vs-jre-vs-jdk
安全工具java是有提供一些安全的授权证书的,Java Keystore 是授权证书或公钥证书的容器。因此,它经常被基于 Java 的应用程序用于加密、身份验证和通过 HTTPS 提供服务。
监控和性能分析
上一篇
下一篇
包装盒在经过陷印、油墨处理等初期工作后,需要经过拼版处理来将各个盒型拼在合适的大版上,以便于后续印刷工作的顺利进行。 ...