# JDK JRE 与 JVM
在JAVA的学习中,我们绝对离不开JDK\JRE\JVM,那么它们都是什么呢,它们之间是否存在相关的关系,如果存在,三者间的关系又是什么呢?
下图如实的描述了三者关的关系:
![](https://box.kancloud.cn/306c5611a6a336ded10a066c4f831161_369x287.png)
# JDK
JDK = Java Development Kits 即:JAVA开发工具包。
我们可以把编写代码比做是制造汽车。JDK则相当于汽车制造中的机器人。
JDK是开发JVAV程序的必备工具包,没有JDK,就开发不了JAVA应用程序。JRE是JDK的一部分。比如在开发过程中,用于调试的断点,就是JDK提供的。比如将我们编写的hello.java源程序编译为hello.class可执行程序也是JDK提供的功能的一部门。
# JRE
JRE JAVA Runtime Environment. JAVA运行环境
一个新的型号的汽车生产,需要提前在实验场进行各种实验,所以每家汽车企业都有实验场地。而JAVA编写后的实验场地即是JRE.
如果JAVA开发的软件是辆汽车,那么JRE则是汽车运行中必需的『公路』。
JRE是JDK一部分,可以单独存在并单独提供下载。
hello.class应用程序可以运行在jre中。所以如果我们仅仅是搭建服务器来运行编译后的java程序 ,而并不开发。在那台机器上安装JRE即可。
# JVM
Java Virtual Machine JAVA 虚拟机。汽车需要的仅仅是平坦的公路,至于是把公路修建在平原上,还是高山上,或是隧道中,这则是JVM的事情。JVM使用JAVA可以在平原、高山、隧道的各种环境下运转。
如果没有见山开水,见水搭桥的JVM,就不会有平坦的公路JRE,如果没有JRE,汽车就只能停留在车库中,如果没有JDK,就不可以生产出车库中的汽车。
JVM又是JRE的一部分。它负责在不同的平台下执行hello.class应用程序。正是由于它的功能,决定了JVM上面对接JAVA程序,下面对接操作系统。所以不同的操作系统下,需要安装不同的JVM。
![](https://box.kancloud.cn/b1253d5803f147284570b8555a44285c_994x660.png)
# 环境变量
过记得我们前面在使用PHP开发时候的命名空间吧。命名空间,实际上触决的是,你在自己的班级中找隔壁班级的小明来帮忙的问题。
除了上述方法,我们还可以使用一个环境变量来解决。如果你把小明注册到环境变量中,那么不管你在做任意的位置上找小明来帮忙,都不需要在提前使用命名空间引入了。
将小明注册到环境变量:在系统的任意位置均可呼叫小明。
将梦云智注册到环境变量:在系统中的任意位置均可呼叫梦云智的成员。
将java.exe所在的文件夹注册到环境变量,在系统中的任意位置均可以执行这个文件夹中的EXE可执行文件。
- README
- 第一章:准备
- 第二章:Hello World!
- 第一节:查看工程文件
- 第二节:JDK、JRE与环境变量
- 第三节:index.jsp
- 第三章:Hello Struts
- 第一节:Web.xml
- 第二节:单入口
- 第三节:Hello Struts
- 第四节:触发C层
- 第四章:建立数据表
- 第一节:建立实体类
- 第二节:测试一
- 第三节:测试二
- 第四节:引入Hibernate
- 第五节:配置Hibernate
- 第六节:建立连接
- 第七节:实体类映射数据表
- 第八节:完善数据表
- 第五章:教师管理
- 第一节:增加数据--add
- 第二节:增加数据--save
- 1 获取传入数据数据
- 2 数据写入测试
- 3 对接C层
- 第三节:数据列表
- 1 获取数据
- 2 重构代码
- 3 C层对接--初始化
- 4 C层添加数据
- 5 V层显示数据
- 6 获取数据库中数据
- 7 显示性别
- 8 分页
- 9 条件查询
- 第四节:修改数据
- 1 edit
- 2 update
- 第五节:删除数据
- 第六节:总结
- 第六章:重构C层
- 第一节:继承ActionSupport类
- 第二节:数据验证
- 第七章:前台分离(前台)
- 第一节:环境搭建
- 第二节:运行环境
- 第三节:共享开发环境
- 第四节:生产环境
- 第八章:前台开发(前台)
- 第一节:本地化
- 第二节:教师列表
- 1 引入M层
- 2 模拟后台返回数据
- 3 C与M对接
- 4 C与V对接
- 第九章:前后台对接(前后台)
- 第一节:后台输出json(后台)
- 第二节:对接前台(全栈)
- 第二节:对接API(前台)
- 第二节:跨域请求(后台)
- 第三节:重构代码(前台)
- 第十章:重构后台M层
- 第一节:数据访问DAO层
- 第二节:项目整体重构
- 第十一章:用户登陆(前后台)
- 第一节:制定规范
- 第二节:定制测试用例
- 第三节:后台输入测试代码(后台)
- 第四节:postman(后台)
- 第五节:新建用户登陆模块(前台)
- 第六节:代码重构(前台)
- 第十二章:班级管理(前后台)
- 第一节:班级列表
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第二节:Add
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第三节:Save
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第四节:Edit
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第五节:Update
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第六节:Delete
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第七节:小结
- 第十三章:班级管理(API)
- 第一节:ER图
- 第二节:create
- 1 实体层
- 2 dao层
- 3 service(server)层
- 4 action层
- 第三节:ManyToOne
- 第四节:Read
- 1 service(server)层
- 2 action层
- 第五节:update
- 1 service(server)层
- 2 action层
- 第六节:update
- 第十四章:重构服务层