16.JRE和JDK

程序员在编写代码的时候其实是需要一些环境,例如我们之前写的HelloWorld。我们需要的东西有JVM、核心类库、开发工具。

1、JVM(Java Virtual Machine):Java虚拟机,真正运行Java程序的地方。没有虚拟机,代码都没地方运行。

2、核心类库:例如之前写的HelloWorld代码中,里面的System、out、println,每个单词都有其特定的含义,它们组合在一起就可以把小括号的内容直接展示出来。这些其实都是Java已经写好的东西,我们直接拿过来使用就行了。

3、开发工具:例如:javac 编译工具、java 运行工具、jdb 调试工具、jhat内存分析工具 ...

它们三个组成的整体,就叫JDK。JDK(Java Development Kit)称为Java开发工具包,包含了JRE和开发工具。

所以说简单理解程序员想要编写代码并且能成功运行,我们需要安装一个JDK就可以了。


除此之外,还有一种情况需要我们考虑,假设我现在将代码写完了,也编译完了,此时我需要将class文件交给别人运行,此时人家只需要运行class文件就行了,不需要开发了,但此时别人就不需要再安装一个完整的JDK了,因为在JDK里面,有些东西我们是用不到的,如果强行安装,就会占用硬盘空间。

但我又需要运行代码,那应该安装什么呢?虚拟机、核心类库肯定都是需要的,但是在运行的时候有一部分开发工具就不需要了。例如代码已经写好了,已经不需要javac编译工具;并且此时代码别人写好了,也已经没有问题了,此时也不再需要调试了,jdb工具也用不到了。

所以说java会在JVM、核心类库还有在运行的时候所用到的一些工具单独的抽取出来,又组成了一个 JRE。当我们以后只需要运行代码,不需要编写了,安装一个JRE就可以了。JRE比较短小,不会占用过多的硬盘空间。

JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API,即Java已经写好的一些东西,我们直接拿过来用就行了)。

总结:JDK包含了JRE,JRE包含了JVM。

相关推荐
likerhood14 分钟前
java中`==`和`.equals()`区别
java·开发语言·python
小小李程序员22 分钟前
Langchain4j工具调用获取不到ThreadLocal
java·后端·ai
zs宝来了1 小时前
AQS详解
java·开发语言·jvm
telllong2 小时前
Python异步编程从入门到不懵:asyncio实战踩坑7连发
开发语言·python
wjs20243 小时前
JavaScript 条件语句
开发语言
lulu12165440784 小时前
Claude Code Harness架构技术深度解析:生产级AI Agent工程化实践
java·人工智能·python·ai编程
阿里加多4 小时前
第 1 章:Go 并发编程概述
java·开发语言·数据库·spring·golang
一 乐4 小时前
物流信息管理|基于springboot + vue物流信息管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·物流信息管理系统
2301_792674864 小时前
java学习day29(juc)
java·开发语言·学习