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类型变量的表示范围即可。

相关推荐
QC班长7 小时前
Maven公司私库配置踩坑点
java·服务器·maven·intellij-idea
Makoto_Kimur7 小时前
java开发面试-AI Coding速成
java·开发语言
wuqingshun3141597 小时前
说说mybatis的缓存机制
java·缓存·mybatis
空中海8 小时前
Kubernetes 生产实践、可观测性与扩展入门
java·贪心算法·kubernetes
Devin~Y8 小时前
大厂Java面试实录:Spring Boot/Cloud、Kafka、Redis、K8s 与 Spring AI(RAG/Agent)三轮连环问
java·spring boot·redis·mysql·spring cloud·kafka·kubernetes
bLEd RING8 小时前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
小松加哲8 小时前
Spring MVC 核心原理全解析
java·spring·mvc
Ulyanov9 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
码界筑梦坊9 小时前
357-基于Java的大型商场应急预案管理系统
java·开发语言·毕业设计·知识分享
云烟成雨TD9 小时前
Spring AI Alibaba 1.x 系列【31】集成 Studio 模块实现可视化 Agent 调试
java·人工智能·spring