JDK(Java Development Kit 开发工具包)
JDK(java development kit)是JRE(Java运行时环境)的超集,它包含JRE所拥有的一切以及编译器、调试器等开发工具。
JRE(Java运行时环境)
JRE(Java运行时环境)提供JVM(Java虚拟机)运行的环境。JRE包含JVM、类库和其他文件,不包括编译器和调试器等开发工具。
这意味着,您可以在JRE中运行代码,但不能在JRE中开发和编译代码。
JVM(Java虚拟机)
JVM(Java虚拟机)通过使用JRE提供的类、库和文件来运行程序。JVM能够运行用Java和其他语言编写的程序,也可以编译成Java字节码。例如Jython、Jruby、Closure、Apache、Groovy、Kotlin等。
现在讨论了用于JVM的术语。
类加载器
类加载器读取.class文件并将字节码保存在方法区域中。
方法区
方法区域保存.class文件的类级信息。JVM只有一个方法区域,在所有类之间共享。
堆
堆是分配对象的JVM内存部分。JVM为每个.class文件创建一个对象。
栈
栈是JVM内存部分,但与堆不同,它用于存储临时变量,即方法参数。
PC寄存器
PC寄存器用于跟踪已执行的指令和将要执行的指令。因为指令是由线程执行的,所以每个线程都有一个单独的PC寄存器。
JIT编译器
JIT也称为即时编译器。调用方法时使用。JIT将被调用方法的字节码编译成本机代码。当一个方法在本机代码中编译时,JVM直接调用该方法的编译代码,而不是解释它。
本机方法堆栈
用于访问虚拟机的运行时数据区域的本机方法。
本机方法接口
它使java代码能够在C或C++中用本地应用程序调用或调用。本机应用程序是特定于系统硬件和操作系统的低级语言程序。
垃圾收集
通过JVM使用垃圾收集进行自动内存管理。它从堆中销毁未引用的对象,以便为新对象分配更多内存。
JDK体系结构和API的详细信息
在这个图中,您将了解这些库和API是如何分布在不同的级别上的。
API和方法的区别
API(application programming interface)接口,世界上其他地方都能看到并使用。方法可以是公共接口的一部分,也可以不是。但是API执行一组方法。
在java中,api通过接口提供,接口实际上是一组公共方法。API具有类似于契约的方法签名和返回类型。
例如,list api提供不同的方法签名和预期结果作为返回类型,以便您可以根据自己的方便使用。
JDK与SDK的区别
JDK(Java开发工具包)是SDK(软件开发工具包)的扩展子集。
- JDK包括用于开发、调试和监视Java程序的工具。它主要负责Java程序的编写和运行。
- SDK由与Web应用程序或移动应用程序相关的额外软件组成,如应用服务器、文档、调试器、代码示例、教程、GlassFish服务器、MySQL和IDE Netbeans。
除特别注明外,本站所有文章均为老K的Java博客原创,转载请注明出处来自https://javakk.com/1295.html
暂无评论