jvm优化_Java中JVM,JIR,JRE和JDK之间的区别

jvm优化

jvm优化

JRE,JVM和JDK是您经常与Java编程语言结合使用的三个术语,大多数人会混淆它们或认为它们都是相同的。 在本文中,您将了解什么是Java运行时(JRE),什么是Java虚拟机(JVM),什么是Java开发工具包(JDK)以及即时编译器或JIT。 一旦了解了JRE,JVM或JDK意味着什么,就可以轻松地自己区分它们。 本文是每个Java程序员都应该知道的Essential JVM选项的延续。 如果您还没有阅读这些文章,则也可以阅读它们。

现在,让我们详细了解所有JRE(Java运行时环境),JVM(Java虚拟机)和JDK(Java开发工具包),以了解它们之间的区别。

1. Java运行时环境(JRE)

Java在浏览器,移动设备,电视或机顶盒中无处不在,如果您使用Java编程语言,那么您会知道捆绑在JAR(Java归档)文件中的Java代码需要Java虚拟机JVM才能执行。执行它。

现在, JVM是一个可执行文件或程序,与任何其他程序一样,您可以将其安装到计算机中。 您已经看到浏览器经常建议下载JRE运行从Internet下载的Java Applet。

java.oracle.com中提供了各种版本的JRE,并且大多数只想在浏览器中执行Java程序或独立下载JRE的用户。 所有浏览器(包括Internet Explorer,Firefox和Chrome)都可以使用JRE。

2. Java虚拟机(JVM)

当您下载JRE并在您的计算机上安装时,您已获得创建JVM所需的所有代码。 使用诸如Java HelloWorld之类的Java命令运行Java程序时,将创建Java虚拟机。

JVM负责将字节码转换为特定于机器的代码,这就是为什么您为Windows,Linux或Solaris使用不同的JVM,但是在所有这些操作系统上都可以运行一个JAR的原因。

Java虚拟机是Java编程语言的核心,并为Java程序员提供了一些功能,包括内存管理和垃圾收集,安全性以及其他系统级服务。

可以自定义Java虚拟机,就像我们可以在创建JVM时指定位于JVM内部的启动内存或堆大小的最大内存一样

如果我们为java命令提供了无效的参数,它可能会拒绝创建Java虚拟机,方法是说“创建Java虚拟机失败:无效参数”。

这是Java程序员用来学习更多有关JVM,性能和内存管理(包括解决Java中的内存泄漏问题)的高级课程之一。

3. Java开发套件(JDK)

JDK也被简称为JRE,但它比JRE更为重要,它提供了编译和执行Java程序所需的所有工具和可执行文件。 就像JRE一样,JDK也是特定于平台的,您需要使用单独的安装程序才能在Linux和Windows上安装JDK

JDK的当前版本是1.7,也称为Java7,它包含基于Java7和Java编程规则的javac(Java编译器),可以使用新功能(例如Switch中的Stringfork-join框架Automatic Resource)执行Java7代码。管理

安装JDK时,安装文件夹通常称为JAVA_HOME。 所有二进制文件都位于JAVA_HOME / bin内,其中包括javac,java和其他二进制文件,并且它们必须位于系统PATH中才能编译和执行Java程序。 有关Path的详细信息,请参见 如何在Windows和UNIX中为Java设置PATH

4. JRE,JDK和JVM之间的区别

简而言之,JRE,JDK和JVM之间几乎没有什么区别:

1)JRE和JDK作为安装程序提供,而JVM与它们捆绑在一起。

2)JRE仅包含执行Java程序的环境,但不包含其他用于编译Java程序的工具。

3)JVM随JDK和JRE一起提供,并在执行Java程序时通过提供“ java”命令创建。

4.即时编译器(JIT)

最初,Java被指控性能低下,因为它既编译又解释指令。 由于编译或Java文件到类文件是独立于Java程序的执行的,请勿混淆。

这里,编译字用于字节码到机器指令的翻译。 JIT是Java虚拟机的高级部分,它通过同时编译相似的字节码来优化字节码到机器指令转换部分,从而减少了总体执行时间。

JIT是Java虚拟机的一部分,还执行其他一些优化,例如内联函数。

所有这些都在JRE,JDK和Java虚拟机上,并且它们之间是有区别的。 尽管它们看起来很相似,但是它们是不同的,并且对JVM,JIT或JDK有清晰的了解有助于Java编程。

您可能喜欢的其他JVM内部文章

  • Java中的堆栈和堆内存之间的区别? ( 回答)
  • 生产应用程序的10个基本JVM选项( 文章)
  • 深入学习JVM内部知识的前5门课程( 课程)
  • 了解Java内存管理和GC的前5本书? ( 书籍)
  • 垃圾回收如何在Java中工作? ( 文章)
  • 32位和64位JVM之间的区别? ( 回答)
  • 关于Java堆内存的10分? ( 文章)
  • -XX:UseCompressedOOPS在64位JVM中做什么? ( 文章)
  • 您如何找到Java应用程序的CPU和内存使用情况? ( 文章)
  • 在JVM中加载或初始化类时? ( 文章)
  • Classloader如何在Java中工作? ( 文章)
  • 学习性能的前五门高级Java课程? ( 课程)

感谢您到目前为止阅读本文。 如果您发现此JRE,JVM和JDK文章有用,请与您的朋友和同事分享。 如果您有任何疑问或反馈,请留言。

翻译自: https://www.javacodegeeks.com/2020/08/difference-between-jvm-jir-jre-and-jdk-in-java.html

jvm优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值