麦片网站建设,佛山短视频推广渠道,深圳H5网站开发,看广告赚佣金平台一、JDK、JRE、JVM JDK#xff1a;全称 “Java Development Kit” Java 开发工具包#xff0c;提供 javac编译器、jheap、jconsole 等监控工具; JRE#xff1a;全称 “Java Runtime Environment” Java 运行环境#xff0c;提供 class Library 核心类库JVM; …一、JDK、JRE、JVM JDK全称 “Java Development Kit” Java 开发工具包提供 javac编译器、jheap、jconsole 等监控工具; JRE全称 “Java Runtime Environment” Java 运行环境提供 class Library 核心类库JVM; JVM全称“Java Virtual Machine”Java 虚拟机用于运行 Java 应用程序。 二、Java程序执行过程
1. 编译通过 javac 命令调用 JDK 编译器将 *.java 源文件编译成 *.class 字节码文件。
2. 执行通过 java 命令调用 JVM 虚拟机执行 *.class 字节码文件。
三、Java程序的跨平台
1. 计算机平台是什么 我们通常把CPU 处理器与操作系统构成的系统架构称为计算机平台。
2. 跨平台的原因 通用的字节码不同的平台相同的源代码编译的字节码是相同的所以字节码文件可以在不同平台“通用” 不同的JVM不同的平台执行字节码时都需要各自的 虚拟机版本用于将字节码翻译成当前平台可以执行的机器码指令。 四、静态编译器 通过 JDK 提供的静态编译器将 Java 源文件编译成字节码文件。 编译过程包括: 1词法分析通过空格分隔出源代码中的单词、操作符、控制符等信息将其形成 token 信息流传递给语法解析器。 2语法分析将 token 信息流按照 Java 语法规则组装成一颗语法树。 3语义分析对语法树进行关键字使用、类型匹配、作用域等语法检查。 4字节码当语义分析完成后可以生成字节码。
五、字节码 当1个 Java 源文件被编译后就会按照 JVM 规范和字节码定义产生1个class 字节码文件文件内容由 10 个固定部分组成。
六、JVM执行方式 JVM 以解释编译混合模式执行字节码文件。 1. JVM 的执行方式以解释执行为主。执行过程中JVM 将每个字节码文件中的每个指令通过解释器转换成当前平台可以识别的机器码然后交给CPU 执行。 2. 为了提高执行效率JVM 还会在运行期间JVM 通过热点代码的统计分析识别高频的方法调用循环体、公共模块等当超过阈值时JVM 会基于 JIT 即时编译器 just-in-time compiler 将热点代码转换成机器码直接交给 CPU 执行提高执行效率。 a. client 模式下默认阈值是1500次在Server模式下是 10000 次。 JVM 解释器程序执行的时候解释器首先发挥作用省去了编译器编译时间加快程序的执行效率。 JIT 编译器在程序运行过程中随着时间的推移 JIT 开始慢慢发挥了作用把热点代码编译成本地代码后以后执行相同的代码即可直接交给CPU 执行带来更高的执行效率。 七、类加载器 字节码必须通过类加载器通过加载、验证、解析等校验步骤将字节码文件中的类加载至 JVM 的中运行时数据区才可以执行字节码。 八、垃圾收集器 JVM 在运行期间通过Garbage Collctor垃圾收集器定期对运行时数据区进行垃圾对象的回收从而实现了内存自动管理。
九、JVM组成结构 JVM由类加载器、运行时数据区、 JVM 解释器、 JIT 即时编译器、垃圾回收器、本地方法库等部分组成。 由类加载器完成字节码文件的加载验证和解析存储至运行时数据区并由执行引擎中的解释器完成字节码到机器码的解释执行。同时进行热点代码的统计分析调用 JIT 即时编译器将字节码直接编译成机器码提高执行效率。JVM运行期间的方法调、数据对象统一存放至运行时数据区。