JVM存在的原因

lis*_*aak 6 java jvm

我正在自学编程语言理论,我想知道为什么我们需要一个Java虚拟机或任何虚拟机呢?根本原因是什么?

它只是为了让它成为多平台吗?如果是这样,为什么我们不能只为不同的平台提供独立于平台的语言和不同的编译器?

mer*_*ike 7

在他们的1996年白皮书"Java语言环境"中,Sun的Java团队阐述了Java语言的以下设计目标:

Java TM编程语言的设计要求由必须部署软件的计算环境的性质驱动.

互联网和万维网的大规模发展使我们以一种全新的方式来看待软件的开发和分发.为了生活在电子商务和分销领域,Java技术必须能够在异构的分布式网络中的多个平台上开发安全,高性能和高度健壮的应用程序.

在异构网络中的多个平台上操作使传统的二进制分发,发布,升级,补丁等方案无效.为了在这个丛林中生存,Java编程语言必须是架构中立,可移植和动态适应的.

为满足这些需求而出现的系统很简单,因此大多数开发人员都可以轻松编程; 熟悉,以便当前开发人员可以轻松学习Java编程语言; 面向对象,利用现代软件开发方法并适应分布式客户端 - 服务器应用程序; 多线程,在需要执行多个并发活动的应用程序中实现高性能,例如多媒体; 并解释,以获得最大的可移植性和动态功能.

更进一步,他们更详细地解决了使用解释器的原因:

Java解释器可以直接在解释器和运行时系统已移植到的任何机器上执行Java字节码.在诸如基于Java技术的系统之类的解释平台中,程序的链接阶段是简单的,增量的和轻量级的.您可以从更快的开发周期中受益 - 与传统的重量级编译,链接和测试周期相比,原型设计,实验和快速开发是正常情况.

虽然Java编译器在编译时静态检查方面是严格的,但语言和运行时系统在其链接阶段是动态的.类仅在需要时链接.新代码模块可以根据需要从各种来源链接,甚至可以从网络中的来源链接.对于HotJava浏览器和类似应用程序,可以从任何地方加载交互式可执行代码,从而实现应用程序的透明更新.结果是不断发展的在线服务; 他们可以保持创新和新鲜,吸引更多客户,并促进互联网上电子商务的发展.