文章归档

置顶文章

Web安全

Web安全基础

PHP相关

Writeups

靶机系列

HackTheBox

VulnHub

代码审计

PHP代码审计

流量分析

机器学习

基础学习

Python

Python编程

Java

Java编程

算法

Leetcode

随笔

经验

技术

 2019-09-23   311

Java基础学习之JDK、JRE、JVM

最近帮一个师兄做Cisco的软件工程师面试题,发现还问到了JDK、JRE和JVM之间的关系,虽然看起来比较基础,但是对这个概念还是很模糊,没有形成一个有效的框架,借用廖雪峰师傅的一张图来说明,一图胜千言。

  • JDK:Java Develop Kit
  • JRE:Java Runtime Environment

简单地说,JRE就是运行Java字节码的虚拟机。但是,如果只有Java源码,要编译成Java字节码,就需要JDK,因为JDK除了包含JRE,还提供了编译器、调试器等开发工具。

再贴一张Java执行代码过程的图:

这里再简单的说一下Java 为什么能跨平台,实现一次编写,多处运行?

Java 能够跨平台运行的核心在于 JVM 。不是 Java 能够跨平台,而是它的 jvm 能够跨平台。 Java 引入了字节码的概念,jvm 只能认识字节码,并将它们解释到系统的 API 调用。针对不同的系统有不同的 jvm 实现,有 Linux 版本的 jvm 实现,也有 Windows 版本的 jvm 实现,但是同一段代码在编译后的字节码是一样的。

Copyright © ca01h 2019-2020 | 本站总访问量