Java面试基础问题之(一)—— JDK和JRE区别
JDK:Java Development Kit
Java开发包
JRE:Java Runtime Environment
Java运行环境
从名字就能看出,JRE是JDK的子集,举个通俗的例子,如果只是想运行.class文件,JRE就够了。但是要想编写运行.java文件,就得要JDK。具体JDK和JRE在组成上的区别可以见下图:
Java技术体系图:
除了JRE之外,JDK还提供了Java编译器(javac),开发工具比如 Javadoc,Java调试用的Jconsole等等。
总体来看:JDK > JRE > JVM。
另外,一般解压下载的Java包会有两个JRE:与JDK平行的JRE和JDK目录下的JDK,二者有什么区别呢?
其实二者基本相同,jdk有jre是因为:
① jdk是开发包,在开发中肯定要运行调试,从逻辑上讲,jdk中包含jre也是必要的;
② jdk的很多命令比如javac等,本身也是由java写的应用程序,其运行需要jre环境的支持;
③ 单独的jre比jdk下的jre多了服务端的JVM,而独立的jre是安装时候就默认添加进系统的环境变量中的,jdk下的jre需要手动添加。
有一点要注意一下,其实开篇说的“只运行.class文件就只需要JRE”很容易产生一个误区:只要我只打算运行Java程序或应用,不进行任何Java开发,就不需要安装jdk。这不是绝对的,一方面,想要运行的Java代码可能还未编译,即第一次转化为.class文件还没有完成(当然这种情况很少);还有一种情况,例如,使用JSP部署Web应用程序,那么从技术上讲,这只是在应用程序服务器中运行Java程序,但是应用程序服务器会将 JSP 转换为 Java servlet,而servlet本质还是.java代码,仍然需要使用 JDK 来编译成class文件才能运行。
参考:JDK 和 JRE
Java面试基础问题之(一)—— JDK和JRE区别相关推荐
- java gui中文变方块_150道Java面试基础题(含答案)
1)Java 中能创建 volatile 数组吗? 能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引用指向的数组,将会受到 vo ...
- java面试基础题整理(二)
java面试基础题整理 文章目录 java面试基础题整理 前端技术(HTML.CSS.JS.JQuery等) 在js中怎么样验证数字? js中如何给string这个类型加方法? 谈谈js的定时器? 请 ...
- Java面试基础知识III
Java面试基础知识: 1.C++或Java中的异常处理机制的简单原理和应用. 当JAVA 程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常.违反语义规则包括2种情况.一种 ...
- Java面试基础篇之集合
文章目录 你知道的集合都有哪些? 哪些集合是线程安全的? Collection 集合类和数组有什么不同? Collection和Collections有什么区别? 如何确保一个集合不能被修改? Lis ...
- java面试基础(三)
java面试基础(三) 十.设计模式 88.说一下你熟悉的设计模式? 89.简单工厂和抽象工厂有什么区别? 90.为什么要使用 spring? 91.解释一下什么是 aop? 92.解释一下什么是 i ...
- java jdk的作用_jdk的作用是什么?jdk和jre区别介绍
之前给大家介绍了jdk是什么意思,那么接下来要给大家讲到的就是jdk的作用以及jdk和jre之间的区别,一起来了解一下吧! 一.jdk的作用是什么? jdk是java的开发编译环bai境. 它里面包含 ...
- JDK和JRE区别 --学而不思则罔
JDK和JRE区别 JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,如C:\Program Files\Java\jdk1.5.x\目录下的JRE.而C:\Program F ...
- Eclipse中JDK与JRE区别
目录(?)[-] JDK与jRE的区别 eclipse中的JDK与JRE JDK与jRE的区别 JDK(Java development kit):Java 开发工具,包括一系列java命令,如jav ...
- Java面试知识点(全)- Java面试基础部分一
Java面试知识点(全) :https://nanxiang.blog.csdn.net/article/details/130640392 Java基础 语法基础 面向对象 封装 利用抽象数据类型将 ...
- java面试基础_Java面试基础
1.面向对象和面向过程的区别? 面向过程:面向过程性能比面向对象高 面向对象:面向对象易维护.易复用.易扩展 2.Java 语言有哪些特点? 简单易学.面向对象(封装,继承,多态).平台无关性( Ja ...
最新文章
- 在asp.net中使用客户端脚本
- 从企业发展的四个问题,理解OKR的价值所在
- scrapy-splash抓取动态数据例子八
- 博士申请 | 香港科技大学陈浩教授招收AI医疗方向全奖博士/博后/实习生
- jQuery常见的选择器操作运算符
- P6793-[SNOI2020]字符串【广义SAM,贪心】
- 隐藏虚拟键盘,解决键盘挡住UITextField问题
- 斐波那契数列(Fibonacci)递归和非递归实现
- 生成小程序二维码传参scene的问题
- VOC2007.annotation文件解读
- 雷达通信术语中英文对照
- WPS格式转换成Word的方法
- ZCMU 1919: kirito's 星爆气流斩【01背包的二进制优化】
- java里 输出101-150中的素数
- 面向对象分析与设计--遛狗玩
- CLI 什么是 command-line interface
- GNS与WireShark安装流程
- erp系统软件到底是干嘛用的?
- VSCODE下载速度慢的问题
- spring boot 獲取屏幕寬度_Redmi K30S至尊纪念版的屏幕有多好?有些吓人