日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 脚本引擎性能_Java SE 6 入门之脚本引擎加大程序性能

發(fā)布時間:2025/3/20 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 脚本引擎性能_Java SE 6 入门之脚本引擎加大程序性能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java SE 6 入門之腳本引擎加大程序性能

Java SE 6較Java SE5有了很大的改進,它的性能更強,而且是專為Vista所設(shè)計,這就象征著Java SE 6將是Vista上的最佳抉擇。而Java SE 6所提供的最泛濫的新性能必將成為它的最大賣點。

Java SE 6最有目共睹的新性能之一就是內(nèi)嵌了腳本支持。在默許情況下,Java SE 6只支持JavaScript,但這并不認為著Java SE 6只能支持JavaScript。在Java SE 6中提供了一些接口來定義一個腳本規(guī)范,也就是JSR223。經(jīng)過完成這些接口,Java SE 6可能支持恣意的腳本言語(如PHP或Ruby)。

運轉(zhuǎn)第一個腳本程序

在利用Java SE 6運轉(zhuǎn)腳本之前,必需要知道你的Java SE 6支持什么腳本言語。在javax.script包中有很多的類,但這些類中最次要的是ScriptEngineManager??赡芙?jīng)過這個類失去以后Java SE 6所支持的一切腳本。如下面例子將列出一切可能利用的腳本引擎工廠。

import javax.script.*; import java.io.*; import java.util.*; import static java.lang.System.*; public class ListScriptEngines {  public static void main(String args[])  {   ScriptEngineManager manager = new ScriptEngineManager();   // 失去一切的腳本引擎工廠   List factories = manager.getEngineFactories();   // 這是Java SE 5 和Java SE 6的新For語句語法   for (ScriptEngineFactory factory: factories)   {    // 打印腳本信息    out.printf("Name: %s%n" +     "Version: %s%n" +     "Language name: %s%n" +     "Language version: %s%n" +     "Extensions: %s%n" +     "Mime types: %s%n" +     "Names: %s%n",     factory.getEngineName(),     factory.getEngineVersion(),     factory.getLanguageName(),     factory.getLanguageVersion(),     factory.getExtensions(),     factory.getMimeTypes(),     factory.getNames());    // 失去以后的腳本引擎    ScriptEngine engine = factory.getScriptEngine();   }  } }

上面的例子必需要在Java SE 6中編譯。其中import static java.lang.System.*是新的語法,將System中的一切靜態(tài)成員停止引用,當(dāng)前就可能間接利用out、in或err了。

經(jīng)過運轉(zhuǎn)java ListScriptEngines,將顯示如下信息

Name: Mozilla Rhino Version: 1.6 release 2 Language name: ECMAScript Language version: 1.6 Extensions: [js] Mime types: [application/javascript, application/ecmascript, text/javascript, text/ecmascript] Names: [js, rhino, JavaScript, javascript, ECMAScript, ecmascript]

在最下面一行是腳本的別名,也就是利用它們中的恣意一個都可能。失去一個詳細的腳本引擎有3種方法。

·依據(jù)擴充名失去腳本引擎

ScriptEngine engine = manager.getEngineByExtension("js");

getEngineByExtension的參數(shù)就是Extensions:[js]中[…]里的局部。

·依據(jù)Mime類型失去腳本引擎

ScriptEngine engine = manager.getEngineByMimeType("text/javascript");

getEngineByMimeType的參數(shù)可能是Mime types: [application/javascript, application/ecmascript, text/javascript, text/ecmascript]中的任何一個,可能將text/javascript改成text/ecmascript。

·依據(jù)稱號失去腳本引擎

ScriptEngine engine = manager.getEngineByName("javascript");

getEngineByName后的參數(shù)可能是Names: [js, rhino, JavaScript, javascript, ECMAScript, ecmascript]中的任何一個,如可能將javascript改成ecmascript。

上面已經(jīng)探討了執(zhí)行腳本的第一步,就是失去一個可用的腳本引擎。在實現(xiàn)這項工作之 后就可能應(yīng)用這個腳本引擎執(zhí)行相應(yīng)的腳本了。咱們可能利用ScriptEngine的eval方法來執(zhí)行腳本。eval方法被重載的屢次,但最常用的是public Object eval(String script)。

下面的例子演示了如何利用eval方法來執(zhí)行javascript腳本。

import javax.script.*; import java.io.*; import static java.lang.System.*; public class FirstJavaScript {  public static void main(String args[])  {   ScriptEngineManager manager = new ScriptEngineManager();   // 失去javascript腳本引擎   ScriptEngine engine = manager.getEngineByName("javascript");   try   {    // 末尾運轉(zhuǎn)腳本,并前往以后的小時    Double hour = (Double)engine.eval("var date = new Date();" +"date.getHours();");    String msg;    // 將小時轉(zhuǎn)換為問候信息    if (hour < 10)    {     msg = "上午好";    }    else if (hour < 16)    {     msg = "下午好";    }    else if (hour < 20)    {     msg = "晚上好";    }    else    {     msg = "晚安";    }    out.printf("小時 %s: %s%n", hour, msg);   }   catch (ScriptException e)   {    err.println(e);   }  } }

上面的例子經(jīng)過失去以后的小時,并將其轉(zhuǎn)化為問候語。上面的程序的輸出信息為:

小時9.0:上午好

這個例子最值得留意的是執(zhí)行的2句腳本,最后一句是date.getHours()。并未將這個值賦給一個javascript變量。這時,eval方法就將這樣的值前往。這有些類似C言語的(…)運算符。如(c=a+b, c + d),這個表達式的前往值是a+b+d。

總結(jié)

以上是生活随笔為你收集整理的java 脚本引擎性能_Java SE 6 入门之脚本引擎加大程序性能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。