大白话理解Java虚拟机:JDK、JRE和JVM

有一天,小明和小红在外面打《阴阳师》,打到一半手机没电了,充电器也没有带。小红想让小明继续玩,小明只好去网吧打《阴阳师》。

来到网吧,小红改主意了,想玩《王者荣耀》。

小明在网吧电脑上面安装了安卓模拟器,又在模拟器里面下载《王者荣耀》,这样他就可以用电脑打《王者荣耀》了。

但是好巧不巧,小明在快安装完模拟器的时候出现Bug,图标找不到了。这样即便模拟器安装好也无法启动。小明很着急,因为他还要带妹。

好在小明对电脑有所了解,他打开电脑桌面,找到模拟器安装所在系统盘的位置,创建桌面快捷方式并打开模拟器。

模拟器终于能用了,到了登录界面,小明再一次傻眼。因为小明只有网易账号,没有QQ账号,而《王者荣耀》需要拥有QQ账号才能登录。小明只好注册一个QQ账号。

现在《王者荣耀》总算能玩了,小明和小红愉快地度过了一个下午。

小明为了带妹,不辞辛苦去网吧使用安卓模拟器尝试自己从来没有玩过的游戏,所以小明的付出是值得的。

回归正题,JRE(Java运行环境)JVM(Java虚拟机)就是这样一种关系。虽然小明在电脑里安装了安卓模拟器(JVM),但是没有图标(Java运行工具)也无法正常打开,而且想玩《王者荣耀》(执行Class文件)还有前置条件,那就是需要使用QQ进行登录(Java核心类库)

JVMJava核心类库Java运行工具共同组成了JRE

可以说,有了安卓模拟器和能够玩《王者荣耀》是两个概念。小明需要先安装模拟器(JVM),其次通过图标启动模拟器,再打开《王者荣耀》,最后登录账号。

这一套流程称为JRE

通过这一次操作,小明以后不仅可以玩《王者荣耀》,还能够玩《和平精英》和《LOL》,因为他们都基于QQ账号登录。

至于JDK(Java开发工具),再举一个小例子。

小明开了一间早餐店,小明每天会去菜场买好许多早餐原料,比如各种做饺子的馅料和面粉,把他们做成生蒸饺,再放进蒸笼,但是还需要打开煤气灶才能开始蒸饺子。

小明准备馅料(Java源码编写的Java文件)包饺子(Java编译工具编译的Class文件),在准备馅料的过程中经常需要加入一些调料(Java调试工具)让馅料更完美,之后放进蒸笼(JVM虚拟机),在下面盖上一层蒸笼布(Java核心类库),打开灶台(Java运行工具),最后蒸出一笼美味的饺子(执行Class文件)

这么一套从开发(做饺子)到运行(蒸饺子)的流程的统称就叫JDK,里面包含了JRE(蒸饺子的过程),其中JRE又包含了JVM(蒸笼)。

如果小明不开早餐店也不包饺子,只是从其他早餐店买好生饺子,直接带回家蒸呢?这样只需要蒸笼和灶台就可以了。

同理,如果只是在别人的电脑上单纯运行Java项目,就不用安装JDK,只需要安装JRE就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值