IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK
要想开发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的更多相关文章
- IT兄弟连 Java语法教程 Java开发环境 安装JDK
因为我们要开发Java程序,所以必须在我们的计算机中安装Sun(Oracle)公司提供给我们的JDK.目前最新版本的JDK是JDK 10,但是我们以学习JDK 8为主,所以我们要安装的版本是JDK 8 ...
- IT兄弟连 Java语法教程 Java开发环境 配置Java环境变量
在安装完JDK后,我们需要配置系统的环境变量,否则在控制台中使用JDK为我们提供的工具时将出现如图12所示的错误信息. 图12 未配置环境变量时执行java命令提示的错误信息 当出现这样的提示信息时 ...
- IT兄弟连 Java语法教程 Java语言的其他特性
Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ● 语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...
- IT兄弟连 Java语法教程 Java语言入门 典面试题
1.请说明JVM.JRE和JDK是什么?它们有什么关系? JVM是Java虚拟机,Java Virtual Machine的缩写,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实 ...
- IT兄弟连 Java语法教程 Java平台的版本划分
自从Sun公司推出Java以来,就力图使之无所不能.Java发展至今,按应用范围划分为3个版本,即Java SE.Java EE和Java ME,也就是SunOne(Open Net Environm ...
- Java(二)——开发环境搭建 安装JDK和配置环境变量
1.安装JDK 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载 ...
- IT兄弟连 Java语法教程 Java的发展历程
只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...
- IT兄弟连 Java语法教程 Java语言背景
驱使计算机语言革新的因素有两个:程序设计技术的改进和计算环境的改变.Java也不例外.在大量继承C和C++的基础之上,Java还增加了反应当前程序设计技术状态的功能与精华.针对在线环境的蓬勃发展(In ...
- IT兄弟连 Java语法教程 Java语言的跨平台特性
什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台. CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种零部件的命 ...
随机推荐
- Java for LeetCode 082 Remove Duplicates from Sorted List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...
- web tools for sublime
Your code editor is your main development tool; you use it to write and save lines of code. Write be ...
- React之jsx语法特性
jsx 语法,直接可以在js中使用html标签. 还可以通过花括号的形式,在html标签中,写js表达式. <div> { 1 + 2 } hello,world! </div> ...
- BZOJ 1230 [Usaco2008 Nov]lites 开关灯:线段树异或
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1230 题意: 有n盏灯,一开始全是关着的. 有m次操作(p,a,b).p为0,则将区间[a ...
- IDEAL葵花宝典:java代码开发规范插件 lombok 插件
前言: lombok简介: lombok是暑假来到公司实习的时候发现的一个非常好用的小工具,刚见到的时候就感觉非常惊艳,有一种相见恨晚的感觉,用了一段时间之后感觉的确挺不错,所以特此来推荐一下. 那么 ...
- C# winform控件之PictureBox详解
PictureBox表示用于显示图像的 Windows 图片框控件https://msdn.microsoft.com/zh-cn/library/system.windows.forms.pictu ...
- Linux_学习_02_ 重启tomcat与查看tomcat日志
一.重启tomcat服务器 cd /home/ehlhec/tomcat_dingtalk/bin ./shutdown.sh ps -ef|grep java ./startup.sh (1) 进入 ...
- 使用TortoiseGit同步代码到github远程仓库
1.clone github上的代码仓库的URL 可以用HTTPS,SSH, or Subversion 2.同步push 到远程仓库时 要用 SSH地址,同生成SSH private key ,在g ...
- 对python生成器特性使用的好例子
1.对序列进行分组的函数(摘自web.py源码utils.py文件中) def group(seq, size): """ Returns an iterator ove ...
- 集训Day13
我这个肥宅一点都不快乐嘤嘤嘤 bzoj3456 求n个点的无向简单连通图的个数 我们可以用容斥推出递推式 首先我们令为 于是有 这样就是可以用CDQ分治解决的一类递推式了 不是那么明显的变形一下得到 ...