最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java groovy如何提升代碼運(yùn)行效率

 更新時(shí)間:2020年09月24日 10:45:47   作者:賈樹丙  
這篇文章主要介紹了Java groovy如何提升代碼運(yùn)行效率,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

剛開始學(xué)groovy,知道了它會(huì)先變異成class 文件,然后再用jvm 執(zhí)行。寫了Hello World程序,查看它的編譯文件,發(fā)現(xiàn)groovy的效率挺低的。不但編譯文件的代碼多,而且需要依賴很多groovy包,導(dǎo)致了不能夠直接使用java 命令運(yùn)行class文件

比較如下:

Java版Hello World,JavaTest.java

public class JavaTest {
  public static void main(String[] args){
    System.out.println("Hello World!");
  }
}

編譯后:JavaTest.class

public class JavaTest {
  public JavaTest() {
  }

  public static void main(String[] args) {
    System.out.println("Hello World!");
  }
}

Groovy版Hello World,GroovyTest.groovy

GroovyTest.groovy
class GroovyTest {
  static void main(args){
    println "Hello World!";
  }
}

編譯后:GroovyTest.class

import groovy.lang.GroovyObject;
import groovy.lang.MetaClass;
import org.codehaus.groovy.runtime.callsite.CallSite;

public class GroovyTest implements GroovyObject {
  public GroovyTest() {
    CallSite[] var1 = $getCallSiteArray();
    MetaClass var2 = this.$getStaticMetaClass();
    this.metaClass = var2;
  }

  public static void main(String... args) {
    CallSite[] var1 = $getCallSiteArray();
    var1[0].callStatic(GroovyTest.class, "Hello World!");
  }
}

Groovy 升級(jí)版,GroovyTest.groovy

println("Hello World");

編譯后:GroovyTest.class

import groovy.lang.Binding;
import groovy.lang.Script;
import org.codehaus.groovy.runtime.InvokerHelper;
import org.codehaus.groovy.runtime.callsite.CallSite;

public class GroovyTest extends Script {
  public GroovyTest() {
    CallSite[] var1 = $getCallSiteArray();
  }

  public GroovyTest(Binding context) {
    CallSite[] var2 = $getCallSiteArray();
    super(context);
  }

  public static void main(String... args) {
    CallSite[] var1 = $getCallSiteArray();
    var1[0].call(InvokerHelper.class, GroovyTest.class, args);
  }

  public Object run() {
    CallSite[] var1 = $getCallSiteArray();
    return var1[1].callCurrent(this, "Hello World");
  }
}

越高級(jí)的語言,封裝的越多,開發(fā)簡(jiǎn)單效率低

越底層的語言,封裝的越少,開發(fā)復(fù)雜效率高

所以如果追求效率的話,還是使用Java代碼的好。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

缙云县| 桦甸市| 张家界市| 民权县| 讷河市| 牡丹江市| 南召县| 多伦县| 深泽县| 合山市| 澄迈县| 安福县| 山丹县| 潮州市| 德化县| 广东省| 靖边县| 克东县| 台前县| 合阳县| 门源| 桦川县| 兴山县| 漠河县| 崇仁县| 闸北区| 砚山县| 东乡族自治县| 肥乡县| 永昌县| 剑川县| 神木县| 雷山县| 贵溪市| 唐海县| 尼勒克县| 延津县| 大城县| 莫力| 江门市| 信阳市|