nashorn 性能_Nashorn简介

nashorn 性能

引入了Java 8和名为“ Nashorn”的新JavaScript引擎。 Nashorn基于Da Vinci Machine,该项目旨在为JVM添加动态语言支持。 Nashorn是使混合软件比以前更轻松的一个很好的里程碑。 该引擎的出色功能使您能够在Java(任何其他编译语言)代码和javascript之间进行全双工通信。

使用Nashorn的最简单方法是JDK 8或OpenJDK 8中捆绑的命令行工具,您可以在“ / bin”中找到它。 通过执行jjs,您将面对jjs提示符,提示您可以交互使用Nashorn,也可以将js文件作为参数传递给jjs。 您可以在下面找到使用jjs的基本示例:

考虑下面的simple.js文件:

var name="Nashorn";
print(name);

现在,通过调用:jjs simple.js,将在屏幕上显示“ Nashorn”文本。

我认为jjs足以用于介绍,如果您需要更多信息,可以键入jjs -help。

您也可以在Java代码中使用Nashorn脚本引擎。 考虑下面的Program.java文件:

public class Program {public static void main(String... args) throws ScriptException {ScriptEngineManager factory = new ScriptEngineManager();ScriptEngine nashornEngine = factory.getEngineByName("nashorn");nashornEngine.eval("print('hello world');");}
}

使用此简单的代码,您的屏幕上将会显示一个非常漂亮的问候世界。 您也可以将js文件评估为脚本引擎,ScriptEngine接口的eval方法具有Reader抽象类类型的重载。 因此,您可以简单地传递任何作为Reader类实例的对象。 考虑以下代码:

script1.js内容:

var version = 1;function hello(name) {return "hello " + name;
}

Program.java内容:

public class Program {public static void main(String... args) throws ScriptException, NoSuchMethodException {ScriptEngineManager factory = new ScriptEngineManager();ScriptEngine nashornEngine = factory.getEngineByName("nashorn");nashornEngine.eval(new InputStreamReader(Program.class.getResourceAsStream("script1.js")));System.out.println(nashornEngine.get("version"));Invocable invocable = (Invocable) nashornEngine;Object result = invocable.invokeFunction("hello", "soroosh");System.out.println(result);
}
}

ScriptEngine接口有一个get方法,如您在示例中所注意到的,您可以调用它来检索ScriptEngine中定义的任何变量或任何状态。 在上面的示例中,“ version”是在simple.js文件中声明的变量。

每个脚本引擎都有其自己的ScriptEngine类实现,并且脚本引擎可以实现一些可选接口以扩展其功能。 如果您检查NashornSriptEngine的源代码,则类签名为:

public final class NashornScriptEngine extends javax.script.AbstractScriptEngine implements javax.script.Compilable, javax.script.Invocable

因此,Nashorn脚本引擎也使您能够使用这两个界面。 在上面的示例中,用于调用在脚本引擎中声明的函数的示例使用了Invocable接口。

注意: ScriptEngine是有状态的,因此,如果您在脚本引擎上调用某些函数或评估某些代码,则对象和变量的状态可能会影响其结果。

结论:

在这篇文章中,我试图以一种非常基本和实用的方式介绍Nashorn。在以后的文章中,我将进一步展示Java + Nashorn的互操作性及其在现实世界中的用法。

翻译自: https://www.javacodegeeks.com/2014/04/introduction-to-nashorn.html

nashorn 性能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/342835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RS485串口光端机产品功能特点介绍

RS485串口光端机又叫RS485光纤MODEM,实现双向RS485信号转换成光信号通过光纤传输,光纤接口采用SC/FC/ST型接口,单纤或双纤接口。那么,RS485串口光端机的功能特点有哪些呢?接下来我们就跟随飞畅科技的小编一起来详细了解…

NB-IoT在智能农业中的示范应用

一、 概述 传统农业,种植过程无非是播种、施肥、浇水、收割,种植者也基本全凭感觉经验,往往都是肉眼判断土壤表面干了或者农作物生长出状况才开始进行浇水施肥,遭到虫害才开始打药,对于农作物的生长周期都是很模糊的。…

基于GPRS、NB-IOT、LTE的自组网方案

一、概述 成都亿佰特电子科技有限公司是一家致力于自主研发和客户定制需求的创新型公司,成都亿佰特针对GPRS、NB-IOT、LTE推出了RS232、R485接口的E840-DTU系列数传电台。 针对目前GPRS、NB-IOT、LTE三种不同的技术形式和市场需求,成都亿佰特已经建立了…

rs-485光端机的使用你真的清楚吗?

485光端机,主要的功能就是实现传输rs485信号的,但是在使用过程中,我们经常会遇到各种问题现,接下来就由飞畅科技的小编来为大家讲解几种485光端机主要问题及解决方法,一起来看看吧!   1、常规的使用方式…

4G通信的网络结构与技术分析

1、4G通信网络的关键技术 研究4G通信网络,就必须加强对其关键技术的研究,这是决定4G网络通信与3G网络通信不同的关键因素,其主要包括正交频分复用技术、软件无线电技术、智能天线技术、多输入多输出技术、IP核心网技术和多用户检测技术等。 …

在线学习Java编程的最佳方法

1.简介 Java是使用最广泛的编程语言之一。 根据Github的最新报告 ,Java被列为仅次于JavaScript的第二大最常用的编程语言。 掌握Java的人有很多话题。 好消息是,您可以在线找到很多内容。 在这篇文章中,我们将对所有这些主题进行分类&#x…

基于SpringBoot的个人健康管理系统 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…

LoRa是怎样实现定位的

1.简介 物联网应用对定位的要求越来越多,尤其是一些资产跟踪等的应用。根据Machina Research研究,到2020年底,物联网将会有超过15亿台连接设备。其中约三分之一将严重依赖地理数据,60%应用将可能包括地理数据。Semtec…

RS-485中继器的多种使用方法

RS-485中继器是带有光电隔离和防雷保护的通信产品,能起到延长RS-485/422的通信距离放大信号的作用,也能增强485/422总线的负载能力。本身带有隔离和防雷模块,能保证产品的通信更稳定。 RS-485/422总线如果在恶劣的环境中使用,从…

10835k1_行政组织学_21秋考试

1、我们一般称( )为”科学管理之父“。(2 分) A.法约尔 B.弗兰克・古德诺 C.弗雷德里克・W・泰勒 D.韦伯 2、( )的独特优势之一是能够为不同的组织和个人提供…

工业控制中无线局域网应用前景分析

一、概述 无线局域网是指无线通信技术与上位机设备互相连接,最初推出的版本为IEEE802.11和IEEE802.11b,虽然传输距离和蓝牙一样,属于短距离传输,但是其传输速率最高可以达到11Mb/s,并且其覆盖率也相当高。目前WIFI技术…

10853k1_领导学基础_21秋考试

1、美国普林斯顿大学的鲍莫尔认为,一个领导者应该具备( )项基本特质。(2 分) A.8 B.7 C.10 D.9 2、领导绩效评估是领导活动发展的( )。&#xff0…

浅谈LTE技术及实际应用方案

一、LTE技术概述 LTE是由移动通信标准化组织3GPP推出的以多天线(MIMO)和正交频分复用(OFDM)为基础的新一代通信系统,目前主流的3G技术主要有WCDMA、TD-SCDMA和CDMA2000,前两种采用3GPP技术演进路线,进而发展为LTE。作为3G无线网络演进的唯一标…

光模块有什么用?什么是SFP光模块?

光模块(optical module)由光电子器件、功能电路和光接口等组成,光电子器件包括发射和接收两部分。光模块主要应用在光通信、数据中心等地方的。那么,光模块到底是什么呢?光模块有什么用呢?接下来我们就跟随飞畅科技的小编一起来详…

avro文件导入到hive_XML到Avro的转换

avro文件导入到hive我们都知道XML是正确的吗&#xff1f; 以防万一&#xff0c;这就是所有问题。 <root> <node>5</node> </root>现在&#xff0c;计算机真正需要的是数字5及其周围的环境。 在XML中&#xff0c;您&#xff08;人类和计算机&#xff0…

21秋期末考试中国当代政治制度10084k1

1、特别行政区不实行社会主义制度和政策&#xff0c;而享有保持资本主义制度和生活方式&#xff08; &#xff09;不变的权利。&#xff08;2 分&#xff09; A&#xff0e;80年 B&#xff0e;50年 C&#xff0e;100年 D&#xff0e;30年 2、协商民主是实现党的领导的&#xff…

浅谈GPRS的几种应用方案

一、 概述 随着通信技术飞速发展&#xff0c;人们对于移动网络所提供的服务提出了更高的要求&#xff0c;GPRS&#xff08;通用无线分组业务&#xff09;&#xff0c;是一种基于GSM系统的无线分组交换技术&#xff0c;提供端对端、广域的无线IP连接&#xff0c;以数据流量进行…

21秋期末考试工商企业文化10631k2

1、企业文化作为企业组织中存在的一种&#xff08; &#xff09;&#xff0c;是任何企业都有的&#xff0c;但企业文化建设作为一种&#xff08; &#xff09;&#xff0c;不是任何企业都有的。&#xff08;3 分&#xff09; A&#xff0e;自觉行为&#xff0c;自觉行为 B&…

什么是485中继器,RS-485中继器产品介绍

485中继器是光隔离的RS-485/422的数据中继通信产品&#xff0c;可以中继延长RS-485/422总线网络的通信距离&#xff0c;增强RS-485/422总线网络设备的数目。可以将485总线进行光电隔离&#xff0c;防止共模电压干扰。可以支持RS-485总线与RS-422总线的自动切换。接下来&#xf…

NB-IoT在智慧城市中的应用

一、概述 近年来城镇化高速发展&#xff0c;城市人口越来越多&#xff0c;最深有体会的就是最近各大二线城市人才引进“抢人”大战&#xff0c;虽然为城市注入了新生力&#xff0c;但是随着城镇规模快速扩张&#xff0c;城市面积不断向外扩张&#xff0c;对于城市的管理、城市生…