专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

java虚拟机是什么,深入理解java虚拟机

来源:小易整编  作者:小易  发布时间:2023-03-22 04:23
摘要:java虚拟机是什么,深入理解java虚拟机文章目录一、Java虚拟机是什么二、为什么需要了解Java虚拟机三、JavaJDK的迭代历史四、Java虚拟机发展史与种类五、Java虚拟机规范六、Java虚拟机语言无关性七、Java虚拟机的组成...

java虚拟机是什么,深入理解java虚拟机

文章目录

  • 一、Java 虚拟机是什么

  • 二、为什么需要了解 Java 虚拟机

  • 三、Java JDK 的迭代历史

  • 四、Java 虚拟机发展史与种类

  • 五、Java 虚拟机规范

  • 六、Java 虚拟机语言无关性

  • 七、Java 虚拟机的组成

  • 八、JVM 的生命周期

系统环境:

  • JDK 1.8

参考地址:

  • Oracle Java 虚拟机规范

  • JVM笔记 -- JVM的生命周期介绍

  • JVM基础系列第5讲:字节码文件结构

  • JVM基础系列第2讲:Java 虚拟机的历史

  • 深入理解Java虚拟机: JVM高级特性与最佳实践

深入浅出 JVM 系列文章

  • 01.深入浅出 JVM 之 Java 虚拟机

  • ......

一、Java 虚拟机是什么

Java 虚拟机 简称 JVM (Java Virtual Machine),它是支撑 Java 语言的基石,是运行 Java 应用程序的关键,同时也是实现 Java 语言平台无关性的核心组成部分。

Java 虚拟机听名字就知道是一个虚拟机,可以简单认为它是一台抽象的计算机,是对真实的计算机进行的组成进行了模拟,它拥有着自己的指令集以及各种运行时内存区域,不同的区域实现不同的功能,比如堆、栈、程序计数器等。

并且,Java 虚拟机还拥有 一次编译到处运行、自动内存关联 和 自动垃圾回收 等特性。

二、为什么需要了解 Java 虚拟机

目前 Java 语言可以说是世界上使用率最高的语言之一,Java 开发者拥有着众多的数量,然而大部分开发者在使用 Java 语言开发过程中比较注重于基本语法和开源工具的使用,而并不太关注于 Java 底层的实现原理。

那么说道这里,相比每个人都想过一个问题,那就是学习 Java 虚拟机有必要么?这点笔者不好回答,这个必要性其实跟开发者的环境有关,如果你是一个整天忙碌于编写业务,无暇顾及这些底层知识,使用现有的知识便足以解决开发过程中遇到的问题,那么确实,说实在话必要性不是很大。

但是如果笔者认为,学习一门语言,尤其是想学好一门语言,不能只知其然而不知其所以然,而且我们在日常 Java 编码过程中,无时无刻都在跟 Java 虚拟机打交道,比如:

  • 启动 IDE 工具,那么这时候工具也需要 Java 环境,运行在 Java 虚拟机中;

  • 通过 Maven、Gradel 等工具对 Java 代码编译过程中,同样需要使用 Java 虚拟机执行任务;

  • 运行 Java 应用;

  • ....

所以,我们 Java 开发者时时刻刻都都在与 Java 虚拟机打交道,如果不懂其概念,那么在和同事讨论问题过程中,人家提到 JVM 内存划分,新生代和老年代,以及 GC 垃圾回收等等,听的一脸懵逼~

再谈一些实际情况,笔者在过往的面试过程中,几乎很多公司在面试过程中,都会对 Java 虚拟机相关知识比较感兴趣,有的面试官可能会简单问些概念,但是有的甚至能夺命 N 连问,所以如果对 Java 虚拟机相关知识没有了解,很可能会丧失市场竞争力,尤其是中国 Java 开发者人数众多,竞争压力大,而且还比较卷,所以,如果别人了解这些内容而你不了解,你咋能竞争过别人呢?

总之来说,学习并了解 Java 虚拟机对我们 Java 开发者来说是非常有必要的,毕竟 Java 虚拟机是 Java 语言运行的基石。

三、Java JDK 的迭代历史

了解 Java 虚拟机那肯定先了解 JDK 各个版本的迭代过程,每个版本的 JDK 都有各自的变化,了解这些他们的历史更有助于我们对其知根知底。

这里本人简单汇总了下 JDK 各个版本的变化(资料收集于网络):

JDK 1.0 ~ JDK 1.4:

  • 1995 年 Java (原名Oak) 诞生,并且在 SunWorld 大会上正式发表了 Java 1.0 版本。

  • 1996 年 JDK 1.0 发布,提供了纯解释执行的 Java 虚拟机实现 Sun Classic VM。

  • 1997 年 JDK 1.1 发布,虚拟机没有做变更,依然使用 Sun Classic VM 作为默认的虚拟机。

  • 1998 年 JDK 1.2 发布,提供了运行在 Solaris 平台的 Exact VM 虚拟机,但此时还是用 Sun Classic VM 作为默认的 Java 虚拟机。

  • 2000 年 JDK 1.3 发布,默认的 Java 虚拟机由 Sun Classic VM 改为 Sun HotSopt VM,而 Sun Classic VM 则作为备用虚拟机。

  • 2002 年 JDK 1.4 发布,Sun Classic VM 退出商用虚拟机舞台,直接使用 Sun HotSpot VM 作为默认虚拟机一直到现在,并且新增了正则表达式、异常链、NIO、日志类、XML 解析器等功能。

JDK 5 ~ JDK 17:

  • 2004 年 JDK 5 发布,Sun 公司从这个版本开始放弃了 JDK 1.x 的命名方式,将产品版本号修改成了 JDK x 这种命名。并且在 Java 语法易用性上做出了非常大的改进,自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach循环)等语法特性都是在 JDK 5 中加入的。除此之外,还改进了 Java 的内存模型,以及提供了 java.util.concurrent 并发包等。

  • 2006 年 JDK 6 发布,并且 Sun 公司还把 Java 开源了,创建了 OpenJDK 项目,OpenJDK 和 JDK 的代码基本一致。这个版本对 Java 虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的实现都有相当多的改动。

  • 2011 年 JDK 7 发布,并且在发布前 Sun 公司被 Oracle 收购,提供了新的 G1 垃圾收集器。


本文地址:百科问答频道 https://www.neebe.cn/wenda/936272.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • 虚拟机关机命令poweroff方法

    虚拟机关机命令poweroff方法

    虚拟机是虚拟技术。许多用户将使用虚拟机上的命令自定义操作关机,使其方便快速,有更多的时间来处理其他事情,然后没有其他更容易的Poweroff应该不是命令?让我们来看看。虚拟机命令Poweroff方法首先,Poweroff.1,Powerof...

  • 虚拟机怎么联网?

    虚拟机怎么联网?

    在使用VMwareWorkstation10工作时会遇到形形色色的问题,比如需要设置虚拟机联网。那么如何进行操作呢?下面小编与你分享具体步骤和方法。操作方法01启动Windows10操作系统,如...

  • ESXi虚拟机是什么意思?

    ESXi虚拟机是什么意思?

    ESXi虚拟机是一种虚拟化技术,是指在一台物理主机(服务器、台式机或笔记本电脑)上运行多个虚拟机操作系统。ESXi虚拟机可以让多个不同操作系统(如Windows、Linux等)同时运行在一台物理主机上,每个虚拟机都有自己的虚拟CPU、虚拟...

  • 如何卸载Vmware Workstation虚拟机

    如何卸载Vmware Workstation虚拟机

    介绍Win7系统下卸载VmwareWorkstation虚拟机。操作方法01单击“开始”-“控制面板”,打开控制面板。02在控制面板窗口中,单击“卸载程...

  • 爱快虚拟机是什么意思?

    爱快虚拟机是什么意思?

    爱快虚拟机是一种将计算机硬件资源虚拟化的软件,可以在一台计算机上同时运行多个操作系统,并且每个操作系统在虚拟环境下都可享有独立的计算资源。爱快虚拟机通过模拟硬件环境,为用户提供一个类似真实计算机的虚拟环境,用户可以在该虚拟环境中安装不同的...

  • 安卓虚拟机有什么用

    安卓虚拟机有什么用

    安卓虚拟机可以实现在PC端电脑上安装运行模拟Android系统,主要可以让用户在电脑端安装和使用手机端上的软件APP,甚至还可以像手机一样连接电脑,可以模拟大部分官方版本的安卓系统和软件,主要作用是用于调试手机使用环境下的应用程序。虚拟机(...

  • Docker和虚拟机有什么区别

    Docker和虚拟机有什么区别

    Docker和虚拟机是两种常见的容器化技术,它们在实现隔离和部署应用程序方面有所不同。Docker和虚拟机在架构、隔离性、资源消耗、部署和扩展、系统支持、管理和配置以及生态系统等方面存在差异。根据您的需求和场景选择合适的技术可以更好地满足您...

  • 虚拟机有什么用

    虚拟机有什么用

    虚拟机可以安装各种演示环境,便于做各种测试;减少了不必要的垃圾安装程序,保证主机的快速运行;避免每次重新安装;在虚拟机中能够随便安装和彻底删除测试用的一些程序和工具;体验不同版本的操作系统,如Linux、Mac等。随着科技的不断发展与人民生...

  • 周排行
  • 月排行
  • 年排行

精彩推荐