Java、JDK、JRE、JVM

news2024/12/16 18:56:44

Java、JDK、JRE、JVM

一、 Java

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

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

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、JRE、JVM关系

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

JVM隐藏了不同硬件平台之间的差异

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1299417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 进程终止

引入 在写 C 语言程序的时候,我们必写的结构就是: int main() {return 0; }在学习 C 语言的时候,我们好像并没有讨论过这个 return 0 有什么用,是干什么的!return 1 可以吗?return 的返回值给谁看&#x…

英伟达危机大爆发!一夜之间,四面楚歌

今年以来,AI大模型明争暗斗、百花齐放。 但不管各种大模型打的有多厉害,很多人都认为“卖铲子”的英伟达才是最大赢家。 看一下英伟达今年的股票就知道英伟达赚的是多么盆满钵满。 英伟达CEO黄仁勋在发布 H200显卡时,应该是今年最意气风发的…

Swagger2的使用

手写Api文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。 接口返回结果不明确 不能直接在线测试接口,通常需要使用工具,比如postman 接口文档太多,不好管理 Sw…

Linux:进程优先级与命令行参数

目录 1.进程优先级 1.1 基本概念 1.2 查看系统进程 1.3 修改进程优先级的命令 2.进程间切换 2.1 相关概念 2.2 Linux2.6内核进程调度队列(了解即可) 3.命令行参数 1.进程优先级 1.1 基本概念 cpu资源分配的先后顺序,就是指进程的优…

探秘机器学习核心逻辑:梯度下降的迭代过程 (图文详解)

一 需求解函数 f() 和 g()函数分别为求y值和求导数的函数。 目的:求该函数的最小值: 代码: import numpy as np import matplotlib.pyplot as plt f lambda x : (x - 3.5) ** 2 - 4.5 * x 10 g lambda x : 2 * (x - 3.5) - 4.5x np.l…

class064 Dijkstra算法、分层图最短路【算法】

class064 Dijkstra算法、分层图最短路【算法】 算法讲解064【必备】Dijkstra算法、分层图最短路 code1 743. 网络延迟时间 // Dijkstra算法模版(Leetcode) // 网络延迟时间 // 有 n 个网络节点,标记为 1 到 n // 给你一个列表 times&…

一个或多个筛选器或者Listeners启动失败 的问题

核心: 这个就是有好多情况会导致这个问题,像是文件找不到,缺少jar包等原因,还是要看报错的具体信息。 报错情况: 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件 由于之前的错误&#x…

Flutter视频播放器在iOS端和Android端都能实现全屏播放

Flutter开发过程中,对于视频播放的三方组件有很多,在Android端适配都挺好,但是在适配iPhone手机的时候,如果设置了UIInterfaceOrientationLandscapeLeft和UIInterfaceOrientationLandscapeRight都为false的情况下,无法…

基于lambda简化设计模式

前言 虽说使用设计模式可以让复杂的业务代码变得清晰且易于维护,但是某些情况下,开发可能会遇到我为了简单的业务逻辑去适配设计模式的情况,本文笔者就以四种常见的设计模式为例,演示如何基于lambda来简化设计模式的实现。 策略…

postgresql自带指令命令系列二

简介 在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量 export PATH/home/postgres/pg/bin:$PATH,该变量会指向postgresql安装路径下的bin目录。这个安装目录和我们在进行编译的时候./configure --prefix [指定安装目录] 中的prefix参…

TypeScript中的单件设计模式

基本概念 (1) 了解设计模式 设计模式通俗的讲,就是一种更好的编写代码方案,打个比喻:从上海到武汉,你可以选择做飞机,做轮船,开车,骑摩托车多种方式,把出行…

【Kubernetes】四层代理Service

Service四层代理 一、Service概念原理1.1、为什么要有Service1.2、Service概述1.3、工作原理1.4、三类IP地址【1】Node Network(节点网络)【2】Pod network(pod 网络)【3】Cluster Network(服务网络) 二、S…

四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛

四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛 文章目录 四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛C1-比64少的bas - DONEC2-affine - DONEC3-简单的RSA - DONEM1-不要动我的f…

【C++数据结构 | 字符串速通】10分钟秒杀字符串相关操作 | 字符串的增删改查 | 字符串与数组相互转换

字符串 by.Qin3Yu 文中所有代码默认已使用std命名空间且已导入部分头文件&#xff1a; #include <iostream> #include <string> using namespace std;概念速览 字符串是一种非常好理解的数据类型&#xff0c;它用于存储和操作文本数据。字符串可以包含任意字符…

认识存储管理

存储器是计算机系统中最重要的资源之一。因为任何程序和数据以及各种控制用的数据结构都必须占有一定的存储空间&#xff0c;因此&#xff0c;存储管理直接影响系统性能。 存储器由内存和外存组成。内存是由系统实际提供的存储单元&#xff08;常指字节&#xff09;组成的一个连…

delphi android打开外部文件,报错android.os.FileUriExposedException解决方法

Android 7.0强制启用了被称作 StrictMode的策略&#xff0c;带来的影响就是你的App对外无法暴露file://类型的URI了。 如果你使用Intent携带这样的URI去打开外部App(比如&#xff1a;打开系统相机拍照)&#xff0c;那么会抛出FileUriExposedException异常。 Delphi 为Android…

spring集成mybatis简单教程

首先说下实现了什么效果&#xff0c;就是不用每次查询前手动创建 sessionFactory和添加datasource文件了。 整个工程结构是这样的 这次我也把代码放在了gitee上&#xff0c;方便大家更全貌的看到所有的实现细节。代码链接如下&#xff1a; Java: 一些Java代码 (gitee.com) …

交换机基本原理和配置

目录 一、数据链路层功能 二、交换机的工作原理 三、交换机的四大功能 一、数据链路层功能 位于网络层与物理层之间 数据链路的建立、维护与拆除帧包装、帧传输、帧同步帧的差错恢复流量控制 二、交换机的工作原理 交换机通过数据帧的源 MAC 地址&#xff0c;学习到交换机端…

生成模型 | 数字人类的三维重建(3D reconstruction)调研及总结【20231210更新版】

本文主要集中于图片到三维重建的算法模型&#xff0c;其中包含人体重建&#xff0c;人脸重建等 1.三维人体重建 1.1.2015_SMPL: A Skinned Multi-Person Linear Model 论文地址&#xff1a;SMPL2015.pdf (mpg.de) 代码地址&#xff1a;CalciferZh/SMPL: NumPy, TensorFlow an…

我的隐私计算学习——隐私集合求交(1)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具&#xff0c;经由自己阅读后整理而成。 &#xff08;一&#xff09;PSI的介绍 隐私计算关键技术&#xff1a;隐私集合求交&#xff08;PSI&#xff09;原理介绍 隐私计算关键技术&#xff1a;隐私集合求交&#xff08…