Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说JDK、JRE、JIT、SDK、JVM的区别你是否了解?,希望能够帮助你!!!。
JDK(java development kit)是JRE(Java运行时环境)的超集,它包含JRE所拥有的一切以及编译器、调试器等开发工具。
JRE(Java运行时环境)提供JVM(Java虚拟机)运行的环境。JRE包含JVM、类库和其他文件,不包括编译器和调试器等开发工具。
这意味着,您可以在JRE中运行代码,但不能在JRE中开发和编译代码。
JVM(Java虚拟机)通过使用JRE提供的类、库和文件来运行程序。JVM能够运行用Java和其他语言编写的程序,也可以编译成Java字节码。例如Jython、Jruby、Closure、Apache、Groovy、Kotlin等。
现在讨论了用于JVM的术语。
类加载器读取.class文件并将字节码保存在方法区域中。
方法区域保存.class文件的类级信息。JVM只有一个方法区域,在所有类之间共享。
堆是分配对象的JVM内存部分。JVM为每个.class文件创建一个对象。
栈是JVM内存部分,但与堆不同,它用于存储临时变量,即方法参数。
PC寄存器用于跟踪已执行的指令和将要执行的指令。因为指令是由线程执行的,所以每个线程都有一个单独的PC寄存器。
JIT也称为即时编译器。调用方法时使用。JIT将被调用方法的字节码编译成本机代码。当一个方法在本机代码中编译时,JVM直接调用该方法的编译代码,而不是解释它。
用于访问虚拟机的运行时数据区域的本机方法。
它使java代码能够在C或C++中用本地应用程序调用或调用。本机应用程序是特定于系统硬件和操作系统的低级语言程序。
通过JVM使用垃圾收集进行自动内存管理。它从堆中销毁未引用的对象,以便为新对象分配更多内存。
在这个图中,您将了解这些库和API是如何分布在不同的级别上的。
API(application programming interface)接口,世界上其他地方都能看到并使用。方法可以是公共接口的一部分,也可以不是。但是API执行一组方法。
在java中,api通过接口提供,接口实际上是一组公共方法。API具有类似于契约的方法签名和返回类型。
例如,list api提供不同的方法签名和预期结果作为返回类型,以便您可以根据自己的方便使用。
JDK(Java开发工具包)是SDK(软件开发工具包)的扩展子集。
原文链接:http://javakk.com/1295.html
如果觉得本文对你有帮助,可以转发关注支持一下
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章