您现在的位置是:首页 > 正文

jdk与jre的区别 热门推荐

2024-04-01 00:30:43阅读 0

首先笔者想阐明的是:JDK和JRE没想象中的那么简单。

相信大家都知道JDK和JRE是什么,但是具体干什么用不妨先试问下自己,如果能说出个所以然来,那么这篇文章大神请自觉忽略,呵呵,或者可以温故一下。

如果有哪里说的不对的地方还望指出,谢谢。

下面来简单说明下

 

先上张图,宏观的看一下

从图中可以看出JDK包含JRE包含JVM...

 

JDK:java development kit (java开发工具)

JRE:java runtime environment (java运行时环境)

引申出JVM

JVM:java virtuak machine (java虚拟机)

 

一、JDK——开发环境(核心

java development kit 的缩写,意思是JAVA开发工具,我们写文档做PPT需要office 办公软件,开发当然需要开发工具了,说到开发工具大家肯定会想到Eclipse,但是如果直接安装Eclipse你会发现它是运行不起来 是会报错的,只有安装了JDK,配置好了环境变量和path才可以运行成功。这点相信很多人都深有体会。

 

JDK主要包含三部分,

第一部分就是Java运行时环境,JVM

第二部分就是Java的基础类库,这个类库的数量还是非常可观的。

第三部分就是Java的开发工具,它们都是辅助你更好的使用Java的利器。

详寻《玩好JDK,面试不用愁

二、JRE——运行环境

 

java runtime environment (java运行时环境)的缩写

 

1,1_JDK中的JRE

如下图:jdk中包含的jre,在jre的bin目录里有个jvm.dll,既然JRE是运行时环境,那么运行在哪?肯定是JVM虚拟机上了。另,jre的lib目录中放的是一些JAVA类库的class文件,已经打包成jar文件。

1.2_第二个JRE(独立出来的运行时环境)

如下图,不管是JDK中的JRE还是JRE既然是运行时环境必须有JVM。所以JVM也是有两个的。

 

三、JVM——转换环境

 

java virtuak machine (java虚拟机)的缩写。

大家一提到JAVA的优点就会想到:一次编译,随处运行,说白了就是跨平台性好,这点JVM功不可没。

JAVA的程序也就是我们编译的代码都会编译为Class文件,Class文件就是在JVM上运行的文件,

只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。

JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

JVM也是一门很深的学问,感兴趣的童鞋可以深入研究,只有好处,没有坏处。

 

其实有时候面试官问JDK和JRE的区别的目的不是想让你解释什么名词的,而是想看看你的基础和研究JAVA的深浅,还有另一方面就是你是不是经常喜欢问为什么。

 

总结:

如果你面试遇到这个问题了,不用解释太多,一个词(javac)就够了,如果面试官不傻的话,我相信他已经秒懂了。

如果继续追问的话,再一一给他细分。

网站文章

  • Python经典面试题

    Python经典面试题

    一、Python经典面试题1、用你觉得最Python的方式来实现a、b元素交换a,b=b,a2、Python实现—个单例模式单例模式确保某一个类只有一个实例存在当你希望在整个系统中,某个类只能出现一个...

    2024-04-01 00:30:38
  • VS2019实用调试技巧

    VS2019实用调试技巧

    Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。 Release 称为发布版本,编译器对我们写的代码进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用,Release版本不能调试。

    2024-04-01 00:30:13
  • dependency walker工具简介及使用

    dependency walker工具简介及使用

    dependency walker工具简介及使用

    2024-04-01 00:30:06
  • django中使用celery做异步任务、定时任务

    django中使用celery做异步任务、定时任务

    一、celery架构图 生产者消费者模型 调度方法 二、配置使用 celery很容易集成到Django框架中,当然如果想要实现定时任务的话还需要安装django-celery-beta插件,后面会说明...

    2024-04-01 00:29:58
  • 蜂鸟E203开发环境准备工作

    蜂鸟E203开发环境准备工作

    蜂鸟E203开发环境准备工作WindowsWindows工具“NucleiStudio”的快速上手Windows工具“Eclipse”的快速上手Linux安装VMware,安装Ubuntu18.04u...

    2024-04-01 00:29:36
  • Android 共存debug release版, 并设置不同名字

    一部手机上同时安装app的debug版和release版,并显示不同名字 build.gradle buildTypes { debug { applicationIdSuffix ".debug" resValue "string", "app_name", "@string/app_name_debug" ...

    2024-04-01 00:29:28
  • 神经网络向量化实现

    神经网络向量化实现

    矢量化编程 当使用学习算法时,一段更快的代码通常意味着项目进展更快。例如,如果你的学习算法需要花费20分钟运行完成,这意味着你每个小时能“尝试”3个新主意。但是假如你的程序需要20个小时来运行,这意味着你一天只能“尝试”一个新主意,因为你需要花费这么长时间来等待程序的反馈。对于后者,假如你可以提升代码的效率让其只需要运行10个小时,那么你的效率差不多提升一倍。 矢量化编

    2024-04-01 00:29:21
  • 动态数据源切换 AbstractRoutingDataSource

    动态数据源切换 AbstractRoutingDataSource

    2024-04-01 00:28:57
  • 解决WebStorm中无法拉取自己项目的问题

    解决WebStorm中无法拉取自己项目的问题

    1.打开webstorm,然后点击(file->setting->github)2.输入自己的账号和密码这里如果电脑本地不是自己的账号,会报错解决方案:打开控制面板->用户账户->管理您的凭据,修改git用户名和密码3.配置你的git4.拉取git项目代码...

    2024-04-01 00:28:50
  • 山东师范大学2024年的计算机毕设题目大全50例

    最近要准备毕业设计了,不会选题,希望可以帮忙给一些毕业设计题目,我整整花了一周把之前做的答辩通过的毕业设计成品进行整理如下列表。

    2024-04-01 00:28:42