为什么很多语言选择在JVM上实现

这是因为:1、非常经济地实现跨平台;2、JVM 卓越的 JIT (Just-In-Time 即时编译)性能;3、成熟的实例与经验;4、资料完备,社区巨大。语言编译器后端只需要输出 JVM 字节码就可以。跨平台需要极大的工作量,需要花费大量精力去针对不同平台和处理器进行优化。

1、非常经济地实现跨平台

语言编译器后端只需要输出 JVM 字节码就可以。跨平台需要极大的工作量,举个例子,只是独立开发生成本地代码,就需要花费大量精力去针对不同平台和处理器进行优化(比如 Firefox 就会考虑重用 WebKit 的这部分后端)。

2、JVM 卓越的 JIT (Just-In-Time 即时编译)性能

JIT 可以在运行中记录程序运行的特征,并在其基础上做大量的优化(Java 企业级应用的优秀性能很大程度上是由此而来)。 JIT 自从 HotSpot JVM 随 Java 1.2 发布以来,JVM JIT 的性能不断提高,是无可争议的成功产品。把 JVM 作为目标平台意味着大量的性能优化工作可以「外包」给 JVM 来做,大大缩减了 Guest 语言的开发预算。

3、成熟的实例与经验

已经有多个成熟的实例,有大量的经验可以借鉴。JVM 作为一个成熟的高层运行环境,为 Guest 语言提供了很多运行时所需要的服务,比如内存管理(有业界领先的垃圾回收等),很大程度上避免了额外的独立开发。

4、资料完备,社区巨大

JVM 有多个独立实现,也有若干厂商会持续推进,资料完备,社区巨大。Java 社区有大量成熟的库,一般来说,运行在 JVM 上的其它语言都会设计一个专用的「桥」来帮助直接使用 Java 的库,对潜在客户来说是个很好的卖点。Java 有还算不错的开发工具和环境。目标为 JVM 的很多语言会考虑用 Java 语言实现(至少在 bootstrap 阶段)。

延伸阅读:

什么是JVM?

Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。

虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

文章标题:为什么很多语言选择在JVM上实现,发布者:小编,转载请注明出处:https://worktile.com/kb/p/39243

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编站长
上一篇 2023年2月22日
下一篇 2023年2月22日

相关推荐

  • 文心一言的创始背景是什么

    摘要:文心一言是为了满足用户对于中文文本生成技术的需求,同时应对大数据时代信息处理的挑战而产生的一款人工智能写作和文本生成系统。其创始背景主要基于以下几点:1、智能写作需求的上升;2、中文处理的技术挑战;3、大数据与信息过载;4、内容创造与消费的趋势变化。文心一言运用先进的机器学习和自然语言处理技术…

    2023年11月29日
    2100
  • 路线规划软件什么好用

    好用的路线规划软件有:1.百度地图;2.高德地图;3.Google地图;4.腾讯地图;5.苹果地图。百度地图是中国最大的在线地图服务提供商。它不仅提供地图和导航功能,还可以提供路线规划、公交查询、周边搜索等服务。 1.百度地图 百度地图是中国最大的在线地图服务提供商。它不仅提供地图和导航功能,还可以…

    2023年2月27日
    65400
  • 服务管理是什么

    服务管理是面临服务竞争社会而产生的一种新的管理模式。它虽然已经历长达30多年的研究过程,虽然在产生的必要性及其概念,特征和一些理论探讨方面取得了众多研究成果,但是至今尚未形成完整的学科体系。 服务管理是面临服务竞争社会而产生的一种新的管理模式。它虽然已经历长达30多年的研究过程,虽然在产生的必要性及…

    2022年11月6日
    27900
  • 现在编写c语言程序都用什么软件

    编写c语言用以下软件:1、visual c++6.0;2、Turbo C 2.0;3、win-tc;4、Borland C++ Compiler;5、Dev-C++。Visual C++是Microsoft公司推出的以C++语言为基础的开发Windows环境程序,面向对象的可视化集成编程系统。 1、…

    2023年1月27日
    1.2K00
  • 在Java中什么是对象

    对象是Java程序中的实体。对象是Java程序中的基本概念之一,它们具有状态和行为。要创建一个对象,需要实例化一个类并调用类的构造函数。一旦对象被创建,就可以使用它的方法和访问它的属性。当对象不再被引用时,垃圾回收器会自动回收它们。 对象是Java程序中的实体。对象是Java程序中的基本概念之一,它…

    2023年5月29日
    16200
  • 迅睿项目管理系统如何下载模板

    迅睿项目管理系统下载模板的步骤:一、登录迅睿项目管理系统;二、选择模板分类;三、下载模板;四、导入模板。首先,用户需要登录迅睿项目管理系统。打开浏览器,在地址栏中输入迅睿项目管理系统的网址,进入系统登录界面。 一、登录迅睿项目管理系统 首先,用户需要登录迅睿项目管理系统。打开浏览器,在地址栏中输入迅…

    2023年3月30日
    8900
  • 什么是敏捷开发中的燃尽图

    燃尽图是敏捷开发中用于跟踪项目或迭代进度的一种图表工具,它对于监督剩余工作量和时间很有帮助。在核心观点中,燃尽图涵盖了一、目标和用途;二、图表结构;三、制作方法;四、优势和局限性。通过运用燃尽图,团队能够实时地监控到项目的进度情况,确保项目按计划进行,同时识别出可能的问题区域及早干预,它展示了开始到…

    2023年11月27日
    800
  • 什么是 Typosquatting

    Typosquatting 是一种社会工程攻击,目标是在网络浏览器中不正确输入 URL 而不是使用搜索引擎的互联网用户。通常情况下,它涉及诱骗用户访问恶意网站的URL,这些 URL 是合法网站的常见拼写错误。用户可能会被骗进这些虚假网站,输入敏感详细信息。 什么是 Typosquatting Typ…

    2022年10月24日
    16400
  • 什么是HashMap

    基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 一、什么是HashMap 基于哈希表的 Map…

    2023年7月22日
    12200
  • ChatGPT-4.0在游戏开发中可以起到什么作用

    ChatGPT-4.0在游戏开发中的作用不仅仅局限于代码生成,它的应用前景广泛,涵盖了从创意构思、故事编写、到游戏设计、用户体验优化、测试和社区管理等多个方面。ChatGPT-4.0作为技术手段,有助于简化开发流程、提升创意质量、加快内容生成速度、提供个性化体验、实现自动化测试和维持玩家社区秩序。重…

    2023年11月29日
    1200

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部