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。

原文链接:http://javakk.com/1295.html

如果觉得本文对你有帮助,可以关注一下我公众号,回复关键字【面试】即可得到一份Java核心知识点整理与一份面试大礼包!另有更多技术干货文章以及相关资料共享,大家一起学习进步!