【面试】JDK和JVM是什么关系?

1. JDK
  • 1.Java Development Kit,java开发工具包。
  • 2.提供了java应用程序开发所需的所有工具和API。
  • 3.JDK包含了JRE(Java Runtime Environment),即Java运行环境,以及编译Java源代码的编译器(javac)和其他工具(如javadoc、jdb等)。
  • 4.开发人员在开发java应用程序时,需要安装jdk,因为它包含了编写和编译java程序所需的所有内容。
2. JVM
  • 1.Java Virtual Machine,是Java虚拟机的简称。
  • 2.是Java平台的运行环境,负责将Java字节码(.class文件)转换成特定系统架构上的机器码并执行。
  • 3.JVM是跨平台的,因为它将字节码转换成机器码的工作是在运行时动态完成的,而不是在编译时。
  • 4.只要系统安装了JVM,就可以运行Java程序,而无需考虑该程序是在哪种操作系统或硬件平台上编写的。
  • 5.JVM包括一个类加载器(ClassLoader),它负责加载类文件到JVM中,一个垃圾回收器(Garbage Collector),它负责自动回收不再使用的内存。
3. 关系
  • 1.依赖关系:JDK依赖于JVM来运行Java程序,因为JDK中的编译器 javac会将Java源代码编译成JVM能够理解的字节码(.class文件)。JVM会将这些字节码转换成机器码并执行。
  • 2.包含关系:JDK包含了JRE,JRE包含了JVM。安装JDK时,同时也得到了JVM和JRE。
  • 3.目标不同:JDK的目标是提供开发人员编写和编译Java程序所需的工具和API,JVM的目标是提供一个跨平台的运行环境,使得Java程序能够在任何安装了JVM的系统上运行。

相关推荐

  1. 面试JDKJVM什么关系?

    2024-06-05 21:20:04       31 阅读
  2. JDK、JRE 及 JVM 什么

    2024-06-05 21:20:04       53 阅读
  3. 面试题:Jvm 的 synchronized JDK 的 Lock

    2024-06-05 21:20:04       31 阅读
  4. JDK、JRE、JVM三者关系详解

    2024-06-05 21:20:04       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-05 21:20:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-05 21:20:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-05 21:20:04       82 阅读
  4. Python语言-面向对象

    2024-06-05 21:20:04       91 阅读

热门阅读

  1. 使用 AlarmManager 结合广播接收器来实现定时检查

    2024-06-05 21:20:04       27 阅读
  2. WSL虚拟机的两种网络配置方式 NAT Mirrored

    2024-06-05 21:20:04       28 阅读
  3. Ubuntu 离线安装 gcc、g++、make 等依赖包

    2024-06-05 21:20:04       32 阅读
  4. 奇偶交换排序

    2024-06-05 21:20:04       30 阅读
  5. Windows10 安装 Lua详细教程

    2024-06-05 21:20:04       34 阅读
  6. 实验报告题目

    2024-06-05 21:20:04       29 阅读
  7. 09-进程和计划任务管理

    2024-06-05 21:20:04       20 阅读
  8. Android的刷机模式

    2024-06-05 21:20:04       29 阅读
  9. 怎么用SU做45°轴测图?

    2024-06-05 21:20:04       32 阅读
  10. 代码随想录算法训练营第22天|二叉树

    2024-06-05 21:20:04       31 阅读
  11. Circuits--Verification--Finding Bug

    2024-06-05 21:20:04       33 阅读