Java、JDK、JRE、JVM

Java、JDK、JRE、JVM

一、 Java

广义上看,Kotlin、JRuby等运行于Java虚拟机上的编程语言以及相关的程序都属于Java体系的一员。从传统意义上看,Java社区规定的Java技术体系包括以下几个部分:

  • Java程序设计语言
  • 各种硬件平台上的Java虚拟机实现
  • Class文件格式
  • Java类库API
  • 来自商业机构以及开源社区的第三方Java类库

二、 JDK

JDK(Java Development Kit),Java开发工具包,是支持Java程序开发 的最小环境。它提供了JRE、类库和编译器、调试器等开发工具,以支持Java开发人员创建和构建各种类型的程序。

三、 JRE

JRE(Java Runtime Environment),Java运行时环境,是支持Java程序运行 的标准环境。它包括JVM和Java类库,用于解释和执行Java字节码,并提供了运行Java应用程序所需的基本功能。

四、 JVM

JVM(Java Virtual Machine),Java虚拟机,是Java程序运行的核心组件之一。JVM是一个用于解释和执行Java字节码的虚拟计算机,它提供了运行Java程序的环境。

程序员使用JDK开发Java程序,Java程序最终在JRE中的JVM上运行。

五、 Java,编译型?解释型?

  • 编译型语言:把源程序编译成二进制代码的可执行程序然后运行这个程序,如C、C++。编译型语言执行速度快、效率高,但依靠编译器、跨平台性差些。

  • 解释型语言:源程序翻译一句执行一句,如Python、JavaScript。解释型语言执行速度慢、效率低,但依靠解释器、跨平台性好。

Java既不属于传统的编译型语言,也不属于解释型语言,Java是先将代码编译成字节码文件(".class"文件),然后再利用JVM对字节码进行解释执行,所以Java即可以说成编译型,也可以说成解释型。另外,Java是一种动态语言,可以在程序运行时安全地修改它,这对于无法承受任何停机时间的网络应用程序来说尤其重要。

Java提出了"一次编译,到处运行"的口号,这个特性便是通过字节码以及JVM实现的。Java经过编译后的字节码由JVM解释执行,无论硬件配置如何,JVM的设计都遵循统一的规范 。因此,Java在编写时不需要考虑不同架构CPU之间的差异,这为Java的可移植性、跨平台性提供了极大地便利。比如,对于C语言,在不同硬件平台上,int类型的变量可表示的范围不同。但由于JVM的存在,硬件平台的差异对于Java是不可见的,Java只需要知道JVM中int类型变量的表示范围即可。

相关推荐
小画家~19 小时前
第二十八:golang Time.time 时间格式返回定义结构体
java·前端·golang
西岭千秋雪_19 小时前
Kafka安装和使用
java·分布式·kafka·java-zookeeper
從南走到北19 小时前
JAVA国际版打车APP打车顺风车滴滴车跑腿APP源码Android+IOS+H5
android·java·ios
Java天梯之路19 小时前
如何接收前端参数
java·后端
独自破碎E19 小时前
从括号匹配到字符串解码:递归思想的巧妙应用
android·java·开发语言
忧郁的橙子.19 小时前
二、Rabbit MQ 高级
java·开发语言
Chan1620 小时前
【 Java八股文面试 | JVM篇 内存结构、类加载、垃圾回收与性能调优 】
java·jvm·spring boot·后端·spring·idea
百锦再20 小时前
第15章 并发编程
android·java·开发语言·python·rust·django·go
Chan1621 小时前
【 Java八股文面试 | Redis篇 缓存问题、持久化、分布式锁 】
java·数据库·redis·后端·spring·缓存·面试
q***471821 小时前
Spring Boot 整合 Druid 并开启监控
java·spring boot·后端