java编译器和JVM的区别

 更新时间:2020年12月01日 16:20:41   投稿:laozhang  
在本篇文章里小编给大家整理的是一篇关于java编译器和JVM的区别的相关内容,有兴趣的朋友们可以学习下。

Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。java编译器把java编译成字节码,也就是.class文件,然后JVM给编译成的字节码提供运行环境。java的源代码是无法直接在JVM上运行的。

1、java编译器

Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序'(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行。 也相当与 注:JVM(java虚拟机)包括解释器,不同的JDK虚拟机是相同的,解释器不同。

2、JVM-java虚拟机

JVM:是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。

JVM执行程序的过程: I.加载。class文件 II.管理并分配内存 III.执行垃圾收集 JRE(java运行时环境)由JVM构造的java程序的运行环境编译时运行时。

3、JVM有自己完善的硬件架构

如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM是Java平台无关的基础。JVM负责运行字节码:JVM把每一条要执行的字节码交给解释器,翻译成对应的机器码,然后由解释器执行。JVM解释执行字节码文件就是JVM操作Java解释器进行解释执行字节码文件的过程。

到此这篇关于java编译器和JVM的区别的文章就介绍到这了,更多相关java编译器和JVM有什么区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • windows下zookeeper配置java环境变量的方法

    windows下zookeeper配置java环境变量的方法

    今天小编就为大家分享一篇关于windows下zookeeper配置java环境变量的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • centos下安装openjdk21的详细图文教程

    centos下安装openjdk21的详细图文教程

    这篇文章主要介绍了centos下安装openjdk21的相关资料,文章详细介绍了如何手动下载、解压和配置OpenJDK 21,包括下载OpenJDK、上传到指定目录、解压、编辑环境变量和验证安装成功的过程,需要的朋友可以参考下
    2024-12-12
  • Springboot整合minio实现文件服务的教程详解

    Springboot整合minio实现文件服务的教程详解

    这篇文章主要介绍了Springboot整合minio实现文件服务的教程,文中的示例代码讲解详细,对我们的工作或学习有一定帮助,需要的可以参考一下
    2022-06-06
  • Java中内部类的概念与分类详解

    Java中内部类的概念与分类详解

    一个类的定义放在另一个类的内部,这个类就叫做内部类,下面这篇文章主要给大家介绍了关于Java中内部类的概念与分类的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • Java编程获取文件列表及子文件目录的方法(非递归)

    Java编程获取文件列表及子文件目录的方法(非递归)

    这篇文章主要介绍了Java编程获取文件列表及子文件目录的方法(非递归),具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • springmvc开启异步请求报错Java code using the Servlet API or

    springmvc开启异步请求报错Java code using the Ser

    这篇文章主要为大家介绍了springmvc开启异步请求报错Java code using the Servlet API or解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02
  • Spring bean 加载执行顺序实例解析

    Spring bean 加载执行顺序实例解析

    这篇文章主要介绍了Spring bean 加载执行顺序实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Spring Security认证提供程序示例详解

    Spring Security认证提供程序示例详解

    这篇文章主要给大家介绍了关于Spring Security认证提供程序的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Security具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Java线程操作的常见方法【线程名称获取、设置、线程启动判断等】

    Java线程操作的常见方法【线程名称获取、设置、线程启动判断等】

    这篇文章主要介绍了Java线程操作的常见方法,结合实例形式总结分析了java线程的创建、线程名称的获取、设置以及线程启动的判断等相关操作实现技巧,需要的朋友可以参考下
    2019-10-10
  • SpringCloud整合Nacos实现流程详解

    SpringCloud整合Nacos实现流程详解

    这篇文章主要介绍了SpringCloud整合Nacos实现流程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论