JVM中的动态语言支持简介

本文介绍了JVM如何支持动态语言,包括JavaScript(Nashorn和GraalVM)、Groovy、Ruby(JRuby)和Python(Jython)。这些支持使得Java开发者能够利用动态语言的灵活性,实现Java应用程序与动态语言的无缝集成,提升开发效率和应用性能。
摘要由CSDN通过智能技术生成

从版本6开始,JVM已扩展为支持现代动态语言(也称为脚本语言)。Java8的发行为这一领域提供了更多动力。感到这种支持的必要性是因为Java作为一种语言固有地是静态类型的。一切都在编译时决定。另一方面,动态语言的行为是在运行时定义的。结果,JVM对Java的支持为Java程序员开辟了新的视野,我们可以在其中结合平台的静态和动态方面,并在Java应用程序中有效地使用它。本文浏览了JVM中的动态语言支持列表。

本文来自国内专业IT教育学院【优锐课】。Java学习资料交流qq群:907135806,在接下来的学习如果过程中有任何疑问,欢迎进群探讨。

动态语言支持

静态类型化的语言意味着所有类型化的信息(例如类,其成员,函数参数,返回类型值等等)都在编译时确定。Java编译器使用此信息来生成字节码。

另一方面,动态语言(脚本语言)由脚本引擎在运行时执行所有类型检查。没有单独的编译步骤。指令序列由解释器执行,然后对其进行解析以生成中间代码。变量在编译为JVM使用的Java字节码时存储在符号表中。动态语言的特征在于,一旦编写了代码,便可以立即对其进行部署。因为它是解释型的,所以几乎没有等待时间就很容易调试。在Java中,包javax.script提供了所有类和接口,称为Java Scripting API,以支持动态语言。

静态和动态两种语言都有很多优点和缺点。但是,要点是,由于Java的静态特性,Java到目前为止无法获得好处。在特殊支持下重建JVM并非易事。也许,真正的挑战在于实现一个运行时系统,该系统可以在编译过程结束后为方法调用选择适当的实现。在这里,我们介绍了JVM流行的一些动态语言支持。

JVM中的JavaScript

JavaScript是Java Scripting API支持的最流行的脚本语言。当今所有的Web浏览器都支持这种语言。ScriptEngine接口中的eval方法可用于执行以纯Java String编写的脚本。

package com.mano.example;
import javax.script.*;
public class ScriptingDemo {
   
   public static void main(String[] args) {
   
      final ScriptEngineManager manager = new
         ScriptEngineManager();
      final ScriptEngine engine =
         manager.getEngineByName("js");
      try {
   
         System.out.println(engine
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值