美文网首页
Java类加载机制-笔记1(解释/编译执行)

Java类加载机制-笔记1(解释/编译执行)

作者: dylan丶QAQ | 来源:发表于2022-04-13 12:38 被阅读0次

我们写的java代码如何在各种各样的操作系统上运行起来的?

  1. Java文件通过javac 编译成为class文件,这种中间码被称为字节码
  2. 由jvm加载字节码
  3. 运行时 解释器将字节码解释为一行行的机器码来执行
  4. 在程序运行期间 即时编译器能会针对热点代码将该部分字节码编译成 机器码 以获得更高的执行效率
  5. 在整个运行时,解释器和即时编译器 相互配合 使java程序几乎能够达到和编译型 语言一样的执行效率

Q:

1.解释器和编译器区别和联系
  • 解释器是一条一条的解释执行源语言。比如php,postscritp,javascript就是典型的解释性语言
  • 编译器是把源代码整个编译成目标代码,执行时不在需要编译器直接在支持目标代码的平台上运行,这样执行效率比解释执行快很多。比如C语言代码被编译成二进制代码(exe程序),在windows平台上执行。
解释器和编译器区别和联系.png
  • 解释器的优点是比较容易让用户实现自己跨平台的代码,比如java,php等,同一套代码可以在几乎所有的操作系统上执行,而无需根据操作系统做修改;
  • 编译器的目的就是生成目标代码再由连接器生成可执行的机器码,这样的话需要根据不同的操作系统编制代码,虽然有像Qt这样的源代码级跨平台的编程工具库,但在不同的平台上仍然需要重新编译连接成可执行文件,但其执行效率要远远高于解释运行的程序。
2.Java是什么类型的

Java即是编译型的,也是解释型语言,总的来说Java更接近解释型语言。

  • 可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。同时围绕JVM的效率问题,会涉及一些如JIT、AOT等优化技术,例如JIT技术,会将热点代码编译成机器码。而AOT技术,是在运行前,通过工具直接将字节码转换为机器码。
  • 可以说它是解释型的。因为Java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的。
java代码运行流程.png

相关文章

  • JVM内存模型与数据结构

    JAVA代码执行过程 JAVA源码编译由三个过程组成:源码编译机制、类加载机制、类执行机制。代码编译由JAVA源码...

  • Java代码编译和执行的整个过程

    一、简述 Java代码编译和执行的整个过程包含了三个重要的机制:①Java源码编译机制;②类加载机制;③类执行机制...

  • Java类加载机制-笔记1(解释/编译执行)

    我们写的java代码如何在各种各样的操作系统上运行起来的? Java文件通过javac 编译成为class文件,这...

  • 谈谈JVM类加载机制与内存模型

    1、类加载机制 1.1、什么是类加载机制 我的理解是Java编译器将java文件编译成字节码文件,然后类加载器将字...

  • JVM类加载机制

    Java代码的执行机制 在JVM中执行的是编译过后的Class文件,classloader类加载器来负责加载cla...

  • Java的类加载机制

    一、什么是Java的类加载机制 先来看Java程序运行图: Java的类加载机制所做的工作就是将经编译器编译后的....

  • Java类加载机制

    Java类加载机制 类编译 类编译,即 .java 文件通过javac命令编译成 .class 文件,才能在虚拟机...

  • android 动态加载技术demo

    1.引言 前面写了很多关于java类加载机制的笔记。今天又看了下android动态加载,发现和java加载类真是贴...

  • Java奇怪的代码

    原因 -127 126 根据Java编译机制,.java文件在编译以后会生成.class文件给JVM加载执行...

  • java内存区域

    1.概述 java源文件通过编译为java字节码文件,然后通过类加载器加载文件中各个类字节码,然后通过jvm执行。...

网友评论

      本文标题:Java类加载机制-笔记1(解释/编译执行)

      本文链接:https://www.haomeiwen.com/subject/qsqasrtx.html