zoukankan      html  css  js  c++  java
  • JVM(java虚拟机)工作原理

     

    在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。

    跨平台:

    话说,在北京,一般都是讲北京话的,上海,一般都是将上海话,广东,广东话...
    现有一公文发出,要全国执行,该当如何?——先统一翻译成普通话。各地在将普通话版本翻译成当地的方言。

    这里,北京、上海就是不同类型的机器windows,linux...
    编译(javac)就是将公文翻译成普通话的过程,而编译出的.class文件,就是公文的普通话版本。
    在执行的时候,各地的翻译就是jvm,负责将.class转换成本地能够理解的方言来执行。

    *.java→*.class→机器码

    java编译器 (编译) → 虚拟机(解释执行) →  解释器(翻译) → 机器码

     
     
     
    转自:http://www.cnblogs.com/o-andy-o/archive/2012/04/11/2442109.html
  • 相关阅读:
    聊聊Docker数据卷和数据卷容器
    Nginx虚拟主机
    Shell文本处理四剑客
    Docker镜像、容器剖析
    Tomcat性能优化及JVM内存工作原理
    Nginx动静分离架构&&HA-LB集群整合
    Mysql主从复制架构实战
    Mysql编译安装详解
    Apache虚拟主机实战
    Ansible性能调优
  • 原文地址:https://www.cnblogs.com/JAVA-STUDYER/p/8033125.html
Copyright © 2011-2022 走看看