首页 > 编程语言 >java初识-----JDK,JRE和JVM

java初识-----JDK,JRE和JVM

时间:2024-07-29 09:18:20浏览次数:19  
标签:JRE Java JDK 程序 JVM java 运行

JDK,JRE和JVM

JDK 即Java Development Kit

  • 是Java开发工具包的缩写。它是一套用于开发Java应用程序的软件包,包含了Java的运行环境(JRE)、编译器(javac)和调试器(jdb)等众多工具。JDK是Java开发的核心,无论是编写Java程序还是运行Java应用,都离不开JDK的支持。

  • 对于Java开发者来说,安装和配置JDK是入门的第一步。通过JDK,开发者可以编译和运行Java程序,进行调试和优化,以及利用Java提供的各种类库和API来开发复杂的应用程序。因此,学习和掌握JDK的使用方法是成为一名合格Java开发者的重要一环。

JRE即Java Runtime Environment

  • 是Java运行时环境的缩写。它是运行Java程序所必需的一套软件环境,包含了Java虚拟机(JVM)、Java平台核心类库以及支持文件。JRE的主要作用是允许Java程序在特定的系统上运行,而不需要进行任何修改。

  • 与JDK不同,JRE并不包含开发工具,如编译器和调试器。因此,如果你只需要运行Java程序,而不需要进行开发,那么只需要安装JRE即可。然而,对于Java开发者来说,他们通常需要安装JDK,因为JDK包含了JRE以及一系列的开发工具。

  • JRE是Java程序运行的基础环境,它提供了Java程序运行所需的所有资源和支持。无论是开发还是运行Java程序,了解JRE的基本概念和作用都是非常重要的。

JVM即Java Virtual Machine

  • 是Java虚拟机的缩写。它是运行Java字节码的虚拟计算机,为Java程序提供了一个运行时环境。JVM负责解释和执行Java字节码,将其转换为可在特定平台上运行的机器码。

  • JVM是Java语言跨平台特性的关键所在。由于JVM的存在,Java程序可以在任何安装了JVM的设备上运行,而无需对程序进行任何修改。这是因为JVM会针对不同的操作系统和硬件平台提供不同的实现,从而确保Java程序的兼容性。

  • 在JVM中,Java程序被编译成字节码,这是一种中间形式的代码,既不是机器码也不是人类可读的源代码。字节码被设计成易于传输、加载和解释执行,同时也具有一定的抽象性,以隐藏具体平台的细节。

  • 当运行Java程序时,JVM会加载程序的字节码,并将其转换为可在当前平台上执行的机器码。这个过程可能涉及到即时编译(JIT)技术,即将字节码动态编译成机器码以提高执行效率。

区别

JDK JRE JVM
定义与功能 Java开发工具包,包含编译器、运行时环境和开发工具,用于编写、编译和调试Java程序。 Java运行时环境,包含JVM和核心类库,用于运行Java程序。 Java虚拟机,是Java程序运行的基础,负责将字节码转换成机器码并执行。
组成 JRE + Java开发工具 JVM + Java SE标准类库 包括指令集、寄存器、栈、垃圾回收堆和存储方法域等
适用对象 主要面向Java程序开发人员 主要面向需要运行Java程序的普通用户 不直接面向用户,而是作为JRE的一部分存在
特点 提供完整的Java开发环境 提供Java程序的运行环境 实现Java的跨平台性,负责字节码的执行和内存管理等

综上所述,JDK、JRE和JVM在Java开发和运行环境中扮演着不同的角色,它们相互协作,共同支持Java程序的编写、编译、调试和运行。

标签:JRE,Java,JDK,程序,JVM,java,运行
From: https://www.cnblogs.com/jihailong/p/18329348

相关文章

  • java初识---JDK的安装配置
    JDK的安装确定操作系统在开始安装JDK之前,首先需要确定自己的计算机操作系统类型,如Windows、macOS或Linux。因为不同操作系统的JDK安装包和安装步骤可能有所不同。检查系统要求确保计算机满足JDK安装所需的最低系统要求,包括处理器、内存和磁盘空间等。这些要求通常可以在JDK......
  • Java跨平台原理
    Java跨平台原理一、编译过程源代码编译:Java源代码(.java文件)首先被编译成字节码(.class文件)。这一过程是通过Java编译器(javac)完成的。平台无关性:由于字节码不依赖于任何特定的硬件或操作系统,因此它是Java实现跨平台的基础。这意味着,无论在何种操作系统上编译Java源代码,生成的......
  • Java编译和运行的命令
    Java编译和运行的命令Java编译命令(javac)是Java开发工具包(JDK)提供的一个工具,用于将Java源代码(.java文件)编译成Java字节码(.class文件),这些字节码文件可以在Java虚拟机(JVM)上运行。基本语法:javac[options]source_filesjavac:表示Java编译器命令。[options]:表示可选的编......
  • Java-API基础 02
    1.正则表达式:用于描述字符串的内容格式,使用它通常用于匹配一个字符串是否符合格式要求正则表达式的语法:1.[]:表示一个字符,该字符可以是[]中指定的内容例如:[abc]:这个字符可以是a或b或c[a-z]:表示任意一个小写字母[a-zA-Z]:表示任意一个字母[a-zA-Z0-......
  • Java-API基础 03
    1.什么是集合:集合和数组一样,可以保存一组数据,并且提供了操作数组元素的相关方法,使用用更加方便2.集合框架中的相关接口:java.util.Collection接口:是所有集合的顶级接口,封装了所有集合所共有的方法,下面有很多实现类,因此我们可以有更多的数据结构来选择。Collection接口下......
  • HV000030: No validator could be found for constraint ‘javax.validation.constrai
    原文链接:https://blog.csdn.net/miachen520/article/details/119817478错误原因:数字类型不能使用javax.validation.constraints.Pattern注解解决办法方法一:.将字段类型设置为String类型;方法二:使用其他验证注解验证,数字的有@Size,@Min,@Max,@Range现将@Valid常用注解介绍如下:Be......
  • [Java]基础语法
    注释注释就是程序中对代码进行解释说明的文字生效范围:注释不影响程序执行,因为运行的字节码文件中不保留注释字面量数据在程序中的书写格式称为字面量变量在内存中开辟一块区域,用来存储数据,这块空间称为变量定义变量使用变量变量的优势便于数据的扩展和......
  • javascript中的symbol
    symbol的使用功能类似于一种标志唯一性的ID理解唯一性<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><script>lets1=Symbol()lets......
  • 上手多线程(Java)用多线程,就能让图画动起来!
    多线程的三个关键:1.继承Thread类,重写run方法2.线程工作代码在run方法中写3.启动时,调用线程对象的start()如下,教大家实现一个简单的多线程项目一.首先写好一个界面,创建一个按钮对象并加入监听点击按钮后会启动一个新的线程ThreadDraw来进行绘图操作......
  • java基础 手写回忆篇
     java特性:分布行,跨平台性,安全行,多线程,面向对象编程,简单性高级语言分为编译型和解释型:编译型:整个程序写完一起编译速度快效率高解释性:需要一句解释一句编译速度慢效率低java是两者综合:编译器(javac)先把你写好的代码编译成class文件(字节码文件)再用jvm,java虚拟机(解释器)解释执......