要想开发Java程序,就需要知道什么是JVM、JRE以及JDK。JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的关系。

1.JVM(Java Virtual Machine,Java虚拟机)

Java虚拟机简称JVM,是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域(内存中不同的区域),JVM也就是Java程序的解释器。不同平台上的JVM也是不同的,但是它们都提供了相同的接口,JVM是Java程序跨平台特性的关键元素,只要为不同平台实现了相应的JVM,编译后的Java字节码就可以在该平台上运行。显然,相同的字节码文件想要直接在不同的平台上运行是不可能的(因为不同的平台有不同的指令集),只有通过中间的转换器(解释器)才可以实现,JVM就是这个转换器,在不同平台上的JVM将同一份字节码文件转换为不同平台上相应的机器指令。

Sun(Oracle)公司制定的Java虚拟机规范在技术上规定了JVM的统一标准,及具体定义了JVM中的指令集、寄存器、类文件的格式、栈、垃圾回收堆和存储区。Sun公司制定的这些规范的目的就是为了提供统一的标准,最终实现Java程序的平台无关性。

2.JRE(Java Runtime Environment,Java运行时环境)

Java运行时环境简称JRE,是运行Java应用程序所必须的环境的集合,其中包含了JVM虚拟机实现以及Java核心类库支持文件。Java核心类库是jre\lib\rt.jar这个文件。包括了Jave SE平台的所有类库。类库中主要的包如下:

●  java.lang:这个是系统的基础类,比如Object、String等类都是这里面的,这个包是唯一一个不需要引入(import)就可以使用的包。

●  java.io:这里面是所有输入输出有关的类,比如文件操作等。

●  java.nio:为了完善io包中的功能,提高io包中性能而编写的一个新包(但不是为了替代io包)。

●  java.net:这里面是与网络有关的类,比如URL、socket等。

●  java.util:这个是系统工具类,其中包括了主要的集合如Collection、List和Map等。

●  java.sql:这个是数据库操作的类,其中包括Connection、Statement等类。

如果仅仅需要运行Java程序,那么计算机中只需要安装JRE即可。

3.JDK(Java Development Kit,Java开发工具包)

顾名思义,JDK就是用来开发Java应用程序的软件包,JDK中包含了JRE以及JVM实现。JDK是Sun公司为了方便开发Java程序而提供的,JDK中提供了常用的编程所需要的工具库,因此Java开发者必须安装JDK,在JDK的基础上才能进行Java程序的开发。JDK中包含的一些常用的基本组件介绍如下:

●  javac:编译器,将Java源代码转换成字节码文件。

●  java:运行编译后的字节码文件(解释器)。

●  jar:打包工具,将相关的类文件打包成一个.jar文件。

●  javadoc:文档生成器,从源码中的文档注释提取文档。

我们最后来总结一下JVM、JRE和JDK之间的关系,JDK中包含JRE,JRE中包含JVM,如图所示:

图JVM、JRE和JDK关系图

IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK的更多相关文章

  1. IT兄弟连 Java语法教程 Java开发环境 安装JDK

    因为我们要开发Java程序,所以必须在我们的计算机中安装Sun(Oracle)公司提供给我们的JDK.目前最新版本的JDK是JDK 10,但是我们以学习JDK 8为主,所以我们要安装的版本是JDK 8 ...

  2. IT兄弟连 Java语法教程 Java开发环境 配置Java环境变量

    在安装完JDK后,我们需要配置系统的环境变量,否则在控制台中使用JDK为我们提供的工具时将出现如图12所示的错误信息. 图12  未配置环境变量时执行java命令提示的错误信息 当出现这样的提示信息时 ...

  3. IT兄弟连 Java语法教程 Java语言的其他特性

    Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ●  语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...

  4. IT兄弟连 Java语法教程 Java语言入门 典面试题

    1.请说明JVM.JRE和JDK是什么?它们有什么关系? JVM是Java虚拟机,Java Virtual Machine的缩写,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实 ...

  5. IT兄弟连 Java语法教程 Java平台的版本划分

    自从Sun公司推出Java以来,就力图使之无所不能.Java发展至今,按应用范围划分为3个版本,即Java SE.Java EE和Java ME,也就是SunOne(Open Net Environm ...

  6. Java(二)——开发环境搭建 安装JDK和配置环境变量

    1.安装JDK 下载地址  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载 ...

  7. IT兄弟连 Java语法教程 Java的发展历程

    只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...

  8. IT兄弟连 Java语法教程 Java语言背景

    驱使计算机语言革新的因素有两个:程序设计技术的改进和计算环境的改变.Java也不例外.在大量继承C和C++的基础之上,Java还增加了反应当前程序设计技术状态的功能与精华.针对在线环境的蓬勃发展(In ...

  9. IT兄弟连 Java语法教程 Java语言的跨平台特性

    什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台. CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种零部件的命 ...

随机推荐

  1. 最受欢迎的牛 usaco

    题面网上到处都是: 主要来谈谈怎么做,首先利用tarjan求强连通分量缩点,缩点后找到出度为0的点,若不止一个,则输出0,否则输出这个点包含的缩点前的点的个数: 为什么这么做,是由这道题的问法决定的, ...

  2. 20145239杜文超 《Java程序设计》实验二 Java面向对象程序设计实验报告

    20145239 <Java程序设计>实验二 Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S. ...

  3. ActiveMQ 了解

    Active MQ 是JMS的一个具体实现,所以首先要对JMS有所了解. 1.       JMS: 定义:Java消息服务(Java Message Service),是Sun是提出来的为J2EE提 ...

  4. 迁移博客到Github Pages

    由于种种原因,我的博客迁移到了 https://phuker.github.io/ .虽然没有多少人气,但是希望能继续见证一个技术渣的成长.

  5. 使用C语言解析URL

    1. [代码]容易写成自己输入URL,这里测试一个例子     #include <stdio.h>#include <stdlib.h>#include <string ...

  6. codeforces 569B B. Inventory(水题)

    题目链接: B. Inventory time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  7. OpenCV——花环生成函数

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  8. CSS实现简单无缝滚动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 如何运行jnlp文件

    运行DOS命令: C:\Users\thinkpad>javaws D:\***.jnlp 如提示“应用程序已被java安全阻止”则进入控制面板->Java  打开java控制面板,在安全 ...

  10. BZOJ_2813_奇妙的Fibonacci_线性筛

    BZOJ_2813_奇妙的Fibonacci_线性筛 Description Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + ...