美文网首页Java 随笔javaJVM
理解JVM(1)- JVM是什么

理解JVM(1)- JVM是什么

作者: 小鱼爱小虾 | 来源:发表于2017-11-30 23:34 被阅读252次

日常Java开发过程中,我们经常会提及JVM,那么它究竟是什么呢?


它是什么?

JVM全称Java Virtual Machine(Java虚拟机),是一个虚构出来的计算机,它屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码,ByteCode), 就可以在多种平台上不加修改地运行。这背后其实就是JVM把字节码翻译成具体平台上的机器指令,从而实现“一次编写,到处运行(Write Once, Run Anywhere)”。


它在哪里?

  • %JAVA_HOME%\bin\java.exe
  • %JAVA_HOME%\bin\javaw.exe
  • %JAVA_HOME%\bin\javaws.exe
  • %WINDIR%\bin\system32\java.exe
    是上面这些吗?No! These are ONLY Lauchers!
    它在这里:
  • %JAVA_HOME%\jre\bin\client\jvm.dll
  • %JAVA_HOME%\jre\bin\server\jvm.dll

它与JRE/JDK是什么关系?

JDK Components [1]

从上图可以看出:

  • JVM只是JRE的一部分。
  • JRE(Java Runtime Environment,Java运行环境),包含了Java虚拟机、Java基础类库,是使用Java语言编写的程序运行时所需要的软件环境,是提供给想运行Java程序的用户使用的,普通用户只是运行已开发好的Java程序的话,安装JRE即可。
  • JDK(Java Development Kit,Java开发工具包),Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK。作为一个Java程序员,JDK是必须安装的。

它只能运行Java语言编写的程序吗?

或许大部分程序员认为JVM仅仅是用来运行Java程序的,其实在Java发展之初,设计者就曾经考虑过让其他语言也能运行在Java虚拟机之上,在1997年发布的第一版Java虚拟机规范《The Java Virtual Machine Specification》中曾提到:

"In the future, we will consider bounded extensions to the Java virtual machine to provide better support for other languages"

当Java虚拟机发展到JDK 1.7 ~ 1.8的时候,这个设想基本实现了。时至今日,除了Java语言之外,已经有一大批语言能运行在Java虚拟机之上。这使得JVM除了能做到平台无关性之外,在语言无关性上也做的越来越好。


可以运行在JVM上的语言

至此,先对JVM有一个简单初步的了解,后续会逐步深入理解它的体系结构。


下一篇:理解JVM(2)- JVM体系结构


  1. 图片来源https://docs.oracle.com/javase/8/docs/

相关文章

  • 理解JVM(1)- JVM是什么

    日常Java开发过程中,我们经常会提及JVM,那么它究竟是什么呢? 它是什么? JVM全称Java Virtual...

  • JVM内存管理(一)

    JVM与操作系统的关系 1.JVM 基础 1.1 Java Virtual Machine是什么 ​ JVM ...

  • JVM

    栈容量由-Xss指定深入理解JVM—JVM内存模型 JVM内存模型和JVM参数的关系

  • 分布式Java读书笔记二:JVM

    第3章 深入理解JVM 深入理解JVM JVM标准结构 JVM负责装载class文件并执行,因此,首先要掌握的是J...

  • 反编译原理浅析

    本文只作概念性讲解,不作详解,只是希望把我理解的原理简单地描述出来,不深入探究。 JVM JVM是什么?我的理解简...

  • JVM读书笔记

    深入理解JVM(1) : Java内存区域划分 深入理解JVM(2) : Java堆中对象创建、布局、访问全过程 ...

  • JVM内存模型

    纯个人理解。 说到jvm,首先要说的就是jvm的内存模型。 jvm内存结构主要分为以下几块。 1、程序计数器,这是...

  • 深入JVM内核 目录

    深入JVM内核 目录 深入JVM内核1 初识JVM深入JVM内核2 JVM运行机制深入JVM内核3 常用JVM配置...

  • BiBi - JVM -2- 对象

    From:深入理解Java虚拟机 目录BiBi - JVM -0- 开篇BiBi - JVM -1- Java内存...

  • BiBi - JVM -3- 垃圾收集算法

    From:深入理解Java虚拟机 目录BiBi - JVM -0- 开篇BiBi - JVM -1- Java内存...

网友评论

    本文标题:理解JVM(1)- JVM是什么

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