为什么很多语言选择在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日

相关推荐

  • 如何在Python中使用MQTT

    解决Python中MQTT应用的关键步骤包含:1、安装MQTT客户端库,如Paho-MQTT;2、建立客户端实例;3、连接到MQTT代理服务器;4、实现并注册回调函数;5、订阅感兴趣的主题;6、发布消息至特定主题;7、保持客户端运行以监控任何传入的消息;8、适当时断开与服务器的连接。 在这些步骤中,…

    2024年1月5日
    25500
  • 物流管理系统的设计与实现

    物流管理系统应当考量效率提升、成本控制、物流信息透明、合作伙伴协同四大区域。其中效率提升涉及如何缩短物流环节中的时间延误;成本控制则关乎如何优化资源配置降低运营成本;物流信息透明是为了确保从供应链各端至最终用户之间信息流转的及时准确性;合作伙伴协同则突出了跨部门、跨企业合作的重要性。效率提升在系统中…

    2024年1月9日
    25100
  • 微服务和SOA有什么区别

    微服务和SOA的区别有:1、设计理念不同;2、数据管理不同;3、服务规模不同;4、通信方式不同;5、服务治理不同;6、部署方式不同。其中,设计理念不同主要指的是,微服务强调的是服务的自治和业务驱动,而SOA则更注重的是复用性和统一的架构。 1、设计理念不同 微服务:微服务是以业务能力为中心,重视服务…

    2023年7月16日
    2.1K00
  • vb和vb.net有什么区别

    区别有:1、特性不同;2、错误处理不同;3、两者产生的窗体不同;4、数据库访问有差别。vb.net完全面向对象的编程语言,具有抽象、封装、多态、继承、重载、接口共享成员构造器这些特性;而vb是不面向对象的,不支持继承。 1、特性不同 vb.net完全面向对象的编程语言,具有抽象、封装、多态、继承、重…

    2023年2月17日
    1.3K00
  • oa是什么意思呢

    开启文章撰写讲述”OA”这一概念,提供一个扼要的回答。OA通常指的是Office Automation,表示办公自动化。该理念方便了企业和机构内部信息的流转、管理和决策流程。1、它包括文档管理系统、电子邮件系统、会议决策支持系统等多种功能,旨在提高工作效率和降低办公成本。在这…

    2024年1月11日
    18300
  • Java中的RPC和REST的对比是什么

    Java中的RPC和REST区别主要体现在四个方面:1、协议依赖性、2、传输方式、3、使用简便性、4、性能表现。其中,协议依赖性是显著差异之一。RPC往往依赖特定的传输协议,如HTTP、TCP或其他应用层协议,而REST则通常使用HTTP协议。详细来说,在RESTful架构中,HTTP的方法如GET…

    2024年1月8日
    20300
  • 什么是销售管理

    销售管理是指通过销售报价、销售订单、销售发货、退货、销售发票处理、客户管理、价格管理等功能,对销售全过程进行有效的控制和跟踪。销售管理是企业生存的保障,也是促进企业进步的重要因素。 一、销售管理定义 销售管理是指通过销售报价、销售订单、销售发货、退货、销售发票处理、客户管理、价格管理等功能,对销售全…

    2023年1月1日
    1.2K00
  • 适合中小团队的优异协作工具有哪些

    国内外优异的14个协作工具整理:1.IT/软件项目团队协作:PingCode;2.通用项目任务协作:Worktile;3.设计项目协作:墨刀;4.开源项目协作工具:Redmine;5.沟通+客户管理:企业微信;6.All-in-one:飞书;7.产研团队文档协作:PingCode;8.数据表格协作:…

    2023年2月22日
    1.5K00
  • 为什么devops是必修课

    针对“为什么DevOps是必修课”这一议题,DevOps的理念对于当前软件开发与运维的快速迭代至关重要、DevOps的实施能够显著提升团队协作与产品质量、采用DevOps能有效缩短产品上市时间、DevOps鼓励持续学习与技术进步、将DevOps融入企业文化可促进组织变革。特别地,DevOps的实施能…

    2024年3月26日
    2000
  • PMP与信息系统项目管理师的区别和侧重方向

    信息系统项目管理师和pmp的区别在于:1、领域不同;2、作用不同。其中,领域不同是指,PMP不分行业,适合任何领域行业的项目,是通用的项目管理理念。与PMP不同的是,信息系统项目管理师是专指软件行业的项目管理。 1、领域不同 虽然都是项目管理,信息系统项目管理师与PMP两者的领域还是有所区别的。PM…

    2023年2月8日
    67700

发表回复

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

400-800-1024

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

分享本页
返回顶部