Java后端开发中JVM和JDK的关系

Java后端开发中JVM和JDK的关系

  • 一、技术介绍
    • 1、JVM(Java Virtual Machine)
    • 2、JDK(Java Development Kit)
  • 二、关系

一、技术介绍

1、JVM(Java Virtual Machine)

定义:JVM是一个抽象的计算机,它提供了一个环境,允许Java字节码被执行。JVM使得Java程序能够在任何支持JVM的平台上运行,无需修改代码,实现了“一次编写,到处运行”的目标。

功能:JVM负责运行Java字节码,它通过将字节码转换成特定平台的机器码来执行。它还提供内存管理、垃圾回收等功能。

2、JDK(Java Development Kit)

定义:JDK是完整的Java软件开发工具包,包含了开发Java应用所需的编译器、Java运行时环境(JRE)、类库和工具。

组成
JDK由以下几部分组成:
JRE(Java Runtime Environment):包含JVM和运行Java程序所需的类库。
Java编译器(javac):将Java源代码编译成Java字节码(.class文件)。
Java文档生成器(javadoc)和其他工具:如调试工具(jdb)、打包工具(jar)等。

二、关系

(1)JVM是Java运行时环境的核心部分,负责执行编译后的Java程序(字节码)。而JDK(Java Development Kit)不仅提供JVM,还包括了其他开发工具,如编译器(javac)、文档生成器(javadoc)、打包工具(jar)等。

(2)JVM提供了运行Java字节码的环境,但它本身并不包括编写、编译或调试Java程序所需的工具。JDK则提供了一整套完整的工具,使得开发者能够编写、编译、调试、监控和运行Java应用。

(3)使用场景:
JVM:如果你只需要运行Java应用程序,你实际上是在使用JVM,通常作为JRE(Java Runtime Environment)的一部分被安装。JRE包括JVM和运行Java应用程序所需的库。
JDK:如果你需要开发Java应用程序,那么你需要JDK,因为它提供了开发过程中所需的工具和库。JDK中包含了JRE(因此也包含了JVM),以及开发人员需要的其他工具。

总结来说:

JDK是JVM的超集:JDK不仅包含JVM,还包含了其他开发和调试Java程序所需的工具和类库。简单来说,如果你只需要运行Java程序,JRE(包含了JVM)就足够了;但如果你需要开发Java程序,那么就需要JDK。

JVM是Java程序运行的基础:不论是使用JDK还是JRE运行Java程序,都需要JVM来解释或编译成机器码执行。JDK中的JRE提供了JVM的实现。

JVM为Java程序提供运行时环境,而JDK为开发和运行Java应用提供了完整的工具集。开发者使用JDK中的工具开发Java应用,这些应用最终在JVM上运行。

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

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

相关文章

【力扣一刷】代码随想录day29(回溯算法part5:491.递增子序列、46.全排列、47.全排列 II)

目录 【491.递增子序列】中等题 【46.全排列】中等题 【47.全排列 II】中等题 【491.递增子序列】中等题 思路: 1、处理当前节点 如果到当前节点的路径长度为1或者为0,直接遍历访问子节点即可如果到当前节点的路径长度大于/等于2,则判断是…

Linux-Arm GDB调试(本地和远程)

目录 问题描述 已有coredump 没有coredump 小结 问题描述 Linux本机调试使用GDB非常方便,但嵌入式Linux设备资源有限,通常并没有交叉编译工具,那嵌入式设备上的应用发生问题如何查找问题?通常IDE有远程DEBUG功能,这…

【百度实习总结】百度国际化产品研发中心——mediago服务端测试开发实习

目录 Q1:觉得这一段实习跟百度网盘服务端的有什么区别? 移动端和pc端 测试方式的不同 百度网盘: mediago: 觉得两种测试方式哪种更加好? Q2:讲一下印象深刻的BUG Q3:讲一下线上的监控脚本这个是干什么的?可以讲…

3.冒泡排序

冒泡排序 基本思想:每次比较两个相邻的元素 如果它们的顺序错误就把它们交换过来 重点:交换 时间复杂度为:O(n^2)(平均情况、最坏情况) 最优情况:输入的数组已经是完全有序的时候 冒泡排序只需要进行一…

IT外包服务:企业数据资产化加速利器

随着数字化时代的兴起,数据成为企业最为重要的资源之一。数据驱动创新对于企业的竞争力和可持续发展至关重要。在这一进程中,IT外包服务发挥着关键作用,加速企业数据资产化进程,为企业提供了重要支持。 首先,IT外包服务…

第七讲 索引并发控制

我们假设迄今为止讨论的所有数据结构都是单线程访问的。 但 DBMS 需要允许多个线程安全地访问数据结构,以充分利用额外的 CPU ,并隐藏磁盘 I/O 停顿。 并发控制协议【concurrency control protocol】是 DBMS 用于确保在共享对象上的并发操作得到“正确”…

【React】基于JS 3D引擎库实现关系图(图graph)

主角:3D Force-Directed Graph 简介:一个使用ThreeJS/WebGL进行3D渲染的Graph图库 GitHub: https://github.com/vasturiano/3d-force-graph Ps: 较为复杂或节点巨大时,对GPU>CPU消耗较大,同量级节点对比下优于AntV G6和Echarts…

简单介绍lamp/lnmp和ssh服务

lamp/lnmp和ssh服务 lamp/lnmp配置lnmp ssh服务 lamp/lnmp LAMP linuxapachemysqlphp LNMP linuxnginxmysqlphp配置lnmp 安装的组件 nginx -epel源 php-fpm - remi源 mysql - mysql-server mariadb 第一步:安装nginx nginx安装 第二步:安装mysql yum…

树(Tree) - 概念与基础

树的基本概念 树(Tree)是一种重要的数据结构,它在计算机科学中被广泛应用于各种算法和程序中。树是由节点(node)组成的层次结构,其中每个节点都有一个父节点,除了根节点外,每个节点都有零个或多个子节点。树的一个关键特点是没有…

【算法每日一练]-数论(保姆级教程 篇1 埃氏筛,欧拉筛)

目录 保证给你讲透讲懂 第一种:埃氏筛法 第二种:欧拉筛法 题目:质数率 题目:不喜欢的数 思路: 问题:1~n 中筛选出所有素数(质数) 有两种经典的时间复杂度较低的筛法&#xff0…

蓝桥杯真题:路径

import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {int n 2022; //从下标为1开始&#xff0c;方便计算int[] q new int[n]; //存储最短路q[1] 0; //起始条件for (int i 2; i < 202…

C语言 | Leetcode C语言题解之3题无重复字符的最长子串

题目&#xff1a; 题解&#xff1a; int lengthOfLongestSubstring(char * s) {//类似于hash的思想//滑动窗口维护int left 0;int right 0;int max 0;int i,j;int len strlen(s);int haveSameChar 0;for(i 0; i < len ; i ){if(left < right){ //检测是否出现重…

5.2 通用代码,数组求和,拷贝数组,si配合di翻转数组

5.2 通用代码&#xff0c;数组求和&#xff0c;拷贝数组&#xff0c;si配合di翻转数组 1. 通用代码 通用代码类似于一个用汇编语言写程序的一个框架&#xff0c;也类似于c语言的头文件编写 assume cs:code,ds:data,ss:stack data segmentdata endsstack segmentstack endsco…

I.MX6ULL的MAC网络外设设备树实现说明一

一. 简介 IMX6ULL芯片内部集成了两个 10/100M 的网络 MAC 外设&#xff0c;所以&#xff0c;ALPHA开发板上的有线网络的硬件方案是&#xff1a; SOC内部集成网络MAC外设 PHY网络芯片方案。 本文来说明一下MAC网络外设的设备节点信息的实现。 因此&#xff0c; I.MX6ULL 网络…

Static关键字有什么作用?

static 关键字在 Java 中有多种用途&#xff0c;它主要用来修饰成员变量、成员方法、代码块和内部类。下面是 static 关键字的一些主要作用&#xff1a; 静态变量&#xff08;静态成员变量&#xff09;&#xff1a; static 修饰的变量属于类本身&#xff0c;而非类的某个对象。…

leetcode热题100.数组中的第k大的元素

作者&#xff1a;晓宜 &#x1f308;&#x1f308;&#x1f308; 个人简介&#xff1a;互联网大厂Java准入职&#xff0c;阿里云专家博主&#xff0c;csdn后端优质创作者&#xff0c;算法爱好者 ❤️❤️❤️ 你的关注是我前进的动力&#x1f60a; &#x1f319;&#x1f319;&…

谷歌浏览器必用AI插件 - elmo,好用,还免费

功能&#xff1a; 1、即时生成网站内容摘要&#xff1b; 2、支持提问并从页面获得直接回答&#xff1b; 3、通过关键词获取相关信息&#xff1b; 4、可以与 PDF 对话&#xff0c;方便理解大型文档、学习或审阅报告&#xff1b; 5、与 YouTube 视频交互问答&#xff08;测试…

探索前端架构:MVC、MVVM和MVP模式

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

C语言常用语法提要

为读者查阅方便,下面列出C语言语法中常用的一些部分的提要。为便于理解没有采用严格的语法定义形式,只是备忘性质&#xff0c;供参考。 1.标识符 可由字母、数字和下划线组成。标识符必须以字母或下划线开头。大、小写的字母分别认为是两个不同的字符。不同的系统对标识符的字…

sky06笔记下

1.边沿检测 检测输入信号din的上升沿&#xff0c;并输出pulse module edge_check ( clk, rstn, din, pulse ); input wire clk,rstn; input wire din; output reg pulse;wire din_dly;always (posedge clk or negedge rstn)beginif(!rstn)din_dly < 1b0;elsedin_dly < d…