• .java ⇒(javac) .classs ⇒ (类加载器)转换后的 .class 文件 ⇒ (解释器)可执行代码 ⇒ (JIT 编译器)⇒ 机器码

0. 虚拟机

  • Java 有它的虚拟机:Java 虚拟机(JVM);

    • 在多个平台上实现统一语言,屏蔽和透明的是平台细节
  • .net 也有它自己的虚拟机;
    • 可在单一平台上实现多种语言,屏蔽和透明的是不同语言的语言细节
  • 所谓虚拟机 virtual machine,也即是对 machine(硬件)的软件抽象,也即是一种抽象的计算机;
  • 虚拟机的定义是什么呢,也即如何构成虚拟机,基本概念都有什么?
    • 指令集:
    • 内存体系:

1. JVM

  • Java 虚拟机(JVM)负责把类文件(.class)形式(人类不可读)的代码链接起来并执行;

    • JVM 不能直接解释 Java 语言的源文件(.java 文件),需要首先把源文件转化为类文件;

JVM 是一种虚拟机(virtual machine),除了满足一个虚拟机的基本要求之外,JVM 还能够使安装 JVM 的计算机运行 Java 程序。JVM 在不同的上下文环境下有如下三种不同的含义:

  • specification:规范,格式化地定义了 JVM 的实现所需的要求,JVM 只有一种规范,这就保证了所有的 JVM 实现间的互操作性;
  • implementation:实现
    • 满足 JVM 规范的一组计算机程序;
  • instance:实例
    • An instance of a JVM is an implementation running in a process that executes a computer program compiled into Java bytecode.

2. JRE

Java Runtime Environment,Java 运行时环境。

JRE 包含了运行 Java 程序所需的软件包。

3. JDK

Java Development Kit 是 JRE 的超集,且包含了 javac 编译器等供 Java 程序员使用的常用工具。

Java、JVM、JRE、JDK等组件的理解的更多相关文章

  1. java jvm jre jdk三者的关系

    jvm:java虚拟机器(跨平台的关键) jre:java运行环境 jdk:java 开发工具包(kit) jdk>jre>jvm 环境变量配置 https://www.cnblogs.c ...

  2. java JVM JRE JDK三者之间的关系

    JDK在包含JRE之外,提供了开发Java应用的各种工具,比如编译器和调试器. JRE包括JVM和JAVA核心类库和支持文件,是Java的运行平台. JVM是JRE的一部分,Java虚拟机的主要工作是 ...

  3. JVM, JRE,JDK 的区别

    在网上看到一篇讲解jvm,jre,jdk区别的文章,感觉不错,就收藏到自己的博客了. 1.JVM -- java virtual machine JVM就是我们常说的java虚拟机,它是整个java实 ...

  4. 辨析ADK&JVM&JRE&JDK&ADT

    一.SDK 英文全称:Software Development Kit 中文译名:软件开发工具包 详解: 由第三方服务商提供的实现软件产品某项功能的工具包. 为了扩展软件功能或其它方面而设计出来给开发 ...

  5. JVM JRE JDK三者的区别和联系

    一. 详细介绍1.JVM -- java virtual machineJVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类 ...

  6. JVM,JRE,JDK

    JVM (Java Virtual Machine) : Java虚拟机,运行所有Java程序的假象计算机,是Java程序的运行环境,跨平台性由JVM实现. JRE (Java Runtime Env ...

  7. 一图看懂JVM,JRE,JDK的关系

  8. Java的一些常见问题,JRE,JDK,JVM,包等概念理解

    Java常见错误: 文件名字应该与文件中public类的名字相同 public static void main(String[] args); 如何定位错误和解决错误. JVM,JRE,JDK解释和 ...

  9. JAVA中JDK开发环搭的搭建,jvm jre

    1.JDK的下载与安装: www.oracle.com 安装需要注意的是:不能把jdk安装到有空格或中文的文件夹中,建议大家在某个目录下创建一个JavaWeb的文件夹,然后把所学的java所有内容(后 ...

随机推荐

  1. POJ 2376 Cleaning Shifts 区间覆盖问题

    http://poj.org/problem?id=2376 题目大意: 给你一些区间的起点和终点,让你用最小的区间覆盖一个大的区间. 思路: 贪心,按区间的起点找满足条件的并且终点尽量大的. 一开始 ...

  2. 微服务实战(三):深入微服务架构的进程间通信 - DockOne.io

    原文:微服务实战(三):深入微服务架构的进程间通信 - DockOne.io [编者的话]这是采用微服务架构创建自己应用系列第三篇文章.第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使 ...

  3. VIM使用说明

    [vim 命令-移动光标]:h 的鍵位于左邊,每次按下就會向左移動.l 的鍵位于右邊,每次按下就會向右移動.j 鍵看起來很象一支尖端方向朝下的箭頭.k朝上移动. [vim 命令-启动和退出]:1. 請 ...

  4. ArcSDE中空间数据的备份与恢复

    在采用文件形式空间数据的时代,空间数据的备份仅仅是操作系统中的文件拷贝.备份和归档的过程:而空间数据的恢复也不过是复制.覆盖的操作:在基于ArcSDE和关系型数据库的空间数据库时代,空间数据的备份更多 ...

  5. CImage将图片转为指定像素大小

    CFileDialog fDlg(true, "jpg", "",   OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,   &q ...

  6. Ubuntu下成功安装QQ2013

    阳光小强最近用Win8系统感觉特别不爽,中午果断换了一个win7系统,又想着能不能搞个双系统(最近在看一些linux东西),于是就开始整起来.结果并不好,linux虽然整好了,但是硬盘全部格式化了,当 ...

  7. 关于.c和.h 和定义变量的问题

    最初调试的时候是因为有个错误在wavplay.h文件中 于是我跳到了recorderl.h中:从图中看到引用了main.h 出现这个问题的具体原因还是不太清楚: 不过我任务是因为: wavplay.h ...

  8. [AHK]自定义默认浏览器

    https://blog.csdn.net/liuyukuan/article/details/78844383

  9. Win10安装后必做的优化,解决磁盘100%占用

    Win10安装后必做的优化,解决磁盘100%占用 01关闭家庭组 控制面板–管理工具–服务– HomeGroup Listener和HomeGroup Provider禁用. 02关闭磁盘碎片整理.自 ...

  10. opencv和linux的关联

    这是一篇关于opencv和linux关联的文章