“一次编写,到处运行”是Java语言吸引开发人员的重要原因之一。用Java语言编写的程序可以在任何平台上运行,只需要在操作系统之上安装运行Java的环境即可。某些编程语言的开发平台中并没有虚拟机的概念,而是通过直接从源代码生成目标操作系统上的二进制文件来运行。不同的操作系统上的二进制文件是无法兼容的。以C/C++语言为例,在Windows平台上编译C/C++源代码所生成的可执行文件,无法在Linux平台上运行。当需要使用程序的时候,用户要么直接下载其操作系统对应的可执行文件,要么根据源代码自行编译和连接来得到可执行文件。对程序的开发人员来说,如果程序需要支持不同的操作系统平台,则需要做很多工作来确保程序在不同的操作系统平台上都可以正常工作,其中包括对程序进行修改以适应不同的操作系统。虽然有些类库可以帮助解决这个问题,但是开发人员的任务量仍然比较巨大。
Java平台早在开发时就引入了虚拟机的概念。Java程序不是由操作系统以可执行文件的形式直接运行的,而是运行在Java虚拟机中的。在运行Java程序的时候,需要定一个主Java类。Java虚拟机在启动之后,会从主Java类的main方法开始执行。当main方法执行结束后,Java虚拟机会自动终止。每个Java虚拟机在运行时是底层操作系统上的一个独立的进程。比如,当在Windows操作系统上运行Java程序的时候,可以从任务管理器的进程列表中看到名为“java.ex”或“javaw.exe”的进程,这些就是Java虚拟机的进程。
虚拟机的作用主要有两个。一个是为应用程序屏蔽底层操作系统的细节,另外一个则是为应用程序提供必要的运行时的能力。不同的操作系统在实现上存在很多的差异。快平台的应用程序需要自己来考虑这些问题,并在代码中进行处理。这通常意味着更长的开发时间和更高的维护成本,也意味着需要跟多的熟悉不同开发平台的开发人员。很多程序都采用多线程的方式来提高性能。在创建线程时,Windows平台上的API与Linux上的相关API就存在很大不同,在程序中需要通过不同的分支代码来进行处理。虚拟机的作用就在于助理这些细节,为程序提供统一的接口。同样的线程操作,在Java语言中可以通过抽象的java.lang.Thread类来完成。而Thread类在不同的平台上实现的不同,则有虚拟机来负责。
除此之外,虚拟机为在其上在运行的应用程序提供了必要的支持。以Java虚拟机为例,这些支持包括基本类型和操作符、对象模型、Unicode支持、动态链接、垃圾回收器、内存模型和访问控制等。虚拟机所提供的这些功能,是Java程序运行时的基础。在Java语言中可以与这些功能进行交互。
简而言之,虚拟机相当于一个简化的操作系统,他所提供的功能不仅丰富,而且规范、统一。
随着Java语言的流行,在编程语言开发平台中使用虚拟机也成为了一种被广泛的认可的做法。微软的.NET框架也采用了类似的架构。.NET中的虚拟机被称为通用语言运行时(Common Language Runtime,CLR)。
分享到:
相关推荐
Java虚拟机指令集是虚拟机执行的基本操作单元,每条指令对应一个特定的操作,如加载和存储变量、算术运算、控制流程、对象创建和方法调用等。这些指令是无操作数的,它们的参数通常在操作数栈上找到。Java SE 7版的...
### Java虚拟机规范(JVM)概览 #### 核心概念与重要性 《Java虚拟机规范(JavaSE7版)》是理解Java虚拟机(JVM)运作机制的基石,由Tim Lindholm、Frank Yellin、Gilad Bracha和Alex Buckley等人撰写,后由周志明、...
这份文档不仅对Java虚拟机的基本原理进行了详尽的描述,还定义了Java虚拟机的运行时环境、内存布局、类文件结构等关键要素。这对于理解Java程序是如何被执行的非常重要。 #### 版本信息 该文档的原文版本发布于...
这份文档是Java程序员的基础读物,它不仅帮助理解Java虚拟机的基本概念,还对于深入探究Java语言的细节有着至关重要的作用。 自从1999年4月发布《Java虚拟机规范(第二版)》以来,虽然在JDK5发布时进行了较大更新...
本书不仅对Java虚拟机的基本概念进行了定义,还详细描述了其内部结构和运行机制。对于想要深入了解Java底层实现的开发者而言,这本书具有极高的参考价值。 #### 二、译者序 在译者序中,译者周志明介绍了本书翻译的...
### Java虚拟机的详细原理 #### 一、什么是Java虚拟机 Java虚拟机(Java Virtual Machine,简称JVM)是一种可以执行Java字节码(Bytecode)...了解JVM的基本概念、生命周期和体系结构对于Java开发人员来说至关重要。
1. **Java虚拟机基础**:首先,书本会介绍Java虚拟机的基本概念,包括其设计目标、架构和工作原理。这包括类加载机制、字节码解析、垃圾回收机制等。了解这些基础知识是理解任何Java虚拟机实现的基础。 2. **嵌入式...
### Java虚拟机规范SE8知识点概述 ...以上内容基于《Java® Virtual Machine Specification Java SE 8 Edition》的部分内容进行了整理和概括,旨在帮助读者更好地理解Java虚拟机的核心概念和技术细节。
它详细阐述了Java虚拟机(JVM)的工作原理,包括内存管理、类加载机制、字节码执行以及垃圾回收等核心概念。深入理解这些知识点对于提升程序性能、解决运行时问题以及设计高效的应用程序至关重要。 1. **JVM架构** ...
- **Java体系结构概述**:本章主要介绍了Java体系结构的基本概念及其组成部分。Java体系结构旨在为开发者提供一个统一、高效且跨平台的应用开发环境。 - **Java虚拟机(JVM)**:JVM是Java体系的核心组件,负责解释...
- **概念模型**:Java虚拟机规范中描述的是一个理想化的概念模型,而不是具体的实现细节。这意味着实际的JVM实现可能会有所差异,但最终的行为应该与规范保持一致。 - **统一接口**:该规范保证了不同的Java虚拟机...
在介绍JDK15版本的Java虚拟机规范之前,需要先理解Java虚拟机(JVM)的基本概念。Java虚拟机是一种抽象的计算机,它提供了一个运行环境,使得Java程序能在不同的硬件和操作系统上以相同的方式运行。JVM规范详细定义...
### Java虚拟机(JVM)特性JAVA SE 7 #### 概述 《Java虚拟机特性JAVA SE 7.pdf》是一本详细介绍Java虚拟机(JVM)规范的书籍,针对Java SE 7版本。本书由Tim Lindholm、Frank Yellin、Gilad Bracha和Alex Buckley共同...
JVM规范是一个抽象的概念集合,详细描述在《Java虚拟机规范》一书中。不同的厂商可以实现自己的JVM,但通过规范确保跨平台兼容性。JVM的体系结构包括类装载子系统和运行引擎,前者负责加载具有特定名称的类或接口,...
本文探索了JAVA虚拟机在JAVA课程教学中的应用,讨论了JAVA技术的体 系结构、JAVA虚拟机的重要角色和地位, serta如何结合JAVA虚拟机来解释JAVA的基本概念和运行机制。 JAVA技术的体 系结构包括四个方面的技术:JAVA...