欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java groovy如何提升代碼運行效率

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

剛開始學groovy,知道了它會先變異成class 文件,然后再用jvm 執(zhí)行。寫了Hello World程序,查看它的編譯文件,發(fā)現(xiàn)groovy的效率挺低的。不但編譯文件的代碼多,而且需要依賴很多groovy包,導(dǎo)致了不能夠直接使用java 命令運行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 升級版,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");
  }
}

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java面試題沖刺第九天--MyBatis

    Java面試題沖刺第九天--MyBatis

    這篇文章主要為大家分享了最有價值的三道MyBatis框架面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 淺析JAVA中toString方法的作用

    淺析JAVA中toString方法的作用

    以下是對在JAVA中toString方法的作用進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • 帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之哈希表

    帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之哈希表

    這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之哈希表,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Spring Cloud @RefreshScope 原理及使用

    Spring Cloud @RefreshScope 原理及使用

    這篇文章主要介紹了Spring Cloud @RefreshScope 原理及使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • Java日常練習題,每天進步一點點(39)

    Java日常練習題,每天進步一點點(39)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Maven插件之Dependency:analyze的使用

    Maven插件之Dependency:analyze的使用

    在軟件開發(fā)中,合理管理項目依賴是保證構(gòu)建穩(wěn)定性的關(guān)鍵,Maven作為流行的項目管理工具,提供了Dependency插件來幫助開發(fā)者分析和優(yōu)化項目依賴,通過執(zhí)行dependency:analyze指令,可以辨識項目中使用的、未聲明的、和未使用的依賴項
    2024-10-10
  • java隨機事件分發(fā)器示例

    java隨機事件分發(fā)器示例

    這篇文章主要介紹了java隨機事件分發(fā)器示例,需要的朋友可以參考下,功能需求和代碼實現(xiàn)在下面
    2014-03-03
  • Java利用異常中斷當前任務(wù)的技巧分享

    Java利用異常中斷當前任務(wù)的技巧分享

    在日常開發(fā)中,我們經(jīng)常遇到調(diào)用別人的代碼來完成某個任務(wù),但是當代碼比較耗時的時候,沒法從外部終止該任務(wù),所以本文為大家介紹了如何利用異常中斷當前任務(wù),需要的可以參考下
    2023-08-08
  • 如何安裝jdk及安裝MyEclipse的圖文教程

    如何安裝jdk及安裝MyEclipse的圖文教程

    這篇文章主要介紹了如何安裝jdk及安裝MyEclipse的圖文教程,需要的朋友可以參考下
    2018-03-03
  • RestTemplate的DELETE及PUT等請求方法使用精講

    RestTemplate的DELETE及PUT等請求方法使用精講

    這篇文章主要為大家介紹了RestTemplate的DELETE及PUT等請求方法的使用精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03

最新評論