Java运行机制与JVMJREJDK--是什么

Posted 江西昊仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java运行机制与JVMJREJDK--是什么相关的知识,希望对你有一定的参考价值。

计算机高级语言类型(主要两种)

  • 编译型     (C,C++)
  • 解释型     (php,js,py)

 

Java语言是两种类型的结合。

java的运行机制(三步)

  • 首先利用文本编辑器编写Java源程序(后缀名.java),
  • 再利用编译器(javac)将源程序编译成字节码文件(后缀名.class),
  • 最后利用虚拟机(解释器java)解释执行。

 

 

 C、C++的运行机制

简略的说java找了一个中介人帮它,避免直接和操作系统打交道。

 

什么是 JVM?

JVM 是 Java Virtual Machine(Java虚拟机)的缩写。

JVM百度百科

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,
它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。

简单的说:Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这也是实现跨平台的核心机制。

不同的操作系统有不同的虚拟机。

java虚拟机机制屏蔽了底层运行平台的差别,实现了"一次编译,随处运行"。

JVM里面也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。

JVM负责将java字节码解释运行,边解释边运行,速度上就会受到一定的影响。

 

JVM的特点

  • 实现跨平台的最核心的部分
  • JVM 只关注被编译的 .class 文件,不关心 .java 源文件
  • .class 文件会在 JVM 上执行,然后 JVM 会解释(边解释边运行)给操作系统执行
  • 有自己的指令集,解释自己的指令集到 CPU 指令集和系统资源的调用

 

什么是 JRE?

JRE 是 Java Runtime Environment(Java运行环境)的缩写

JRE百度百科

Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由太阳微系统所研发,

JRE可以让计算机系统运行Java应用程序(Java Application)。

JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)
           以及一些标准的类别函数库(Class Library)。

JRE的要点

  • 包含 JVM 标准实现 Java 核心类库,这些是运行 Java 程序的必要组件
  • 是 Java 程序的运行环境,并不是一个开发环境,没有包含任何开发工具(如编译器和调试器)
  • 是运行基于 Java 语言编写的程序所不可缺少的运行环境,通过它,Java 程序才能正常运行
JRE 是指 java 运行环境。光有 JVM 还不能完成 class 的执行,
因为在解释 class 的时候 JVM 需要调用解释所需要的类库 lib。 
(jre 里有运行.class 的 java.exe)。

如果只是要运行Java程序,只需要jre就可以。

 

什么是 JDK?

JDK 是 Java Development Kit(java开发工具包)的缩写

里面包含了:jre、javac(源码的编译器)、jconsole(监控工具)、jvisualvm(分析工具)等等

JDK目录下的主要几部分:

  • bin 最主要的是编译器  (javac.exe、java.exe)
  • include  java 和 JVM 交互用的头文件
  • lib  类库
  • jre java 运行环境
  • src 类库源码压缩包

在jre目录里有两个文件夹:

  • bin:可以认为是jvm
  • lib:jvm工作所需要的类库。

 

总结

  1. jdk包含jre与jvm,jre包含jvm,jvm是跨平台的核心机制。
  2. JDK 是用于 java 程序的开发,而 jre 则是只能运行 字节码文件,而没有编译的功能。
  3. 如果只是要运行Java程序,只需要jre就可以。
  4. jre 通常非常小,其中包含了jvm。
  5. 如果要开发Java程序,就需要安装jdk,全套服务都来了。

jvm:是一个虚拟的用于执行bytecode字节码的“虚拟计算机”。

jre:包含java虚拟机、库函数、运行java应用程序所必须的文件

jdk:包含jre,增加编译器和调试器等用于程序开发的文件。

 

 

 

 

以上是关于Java运行机制与JVMJREJDK--是什么的主要内容,如果未能解决你的问题,请参考以下文章

JVMJREJDK的区别

JVMJREJDK的作用与区别

2.JVMJREJDK之间的关系

Java 1 (JVMJREJDK之间的关系)

Java 1 (JVMJREJDK之间的关系)

简述JVMJREJDK的关系及作用