首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JVM字节码中"dup2_x2“指令的用途是什么?

在JVM字节码中"dup2_x2“指令的用途是什么?
EN

Stack Overflow用户
提问于 2022-05-04 23:13:11
回答 1查看 108关注 0票数 3

Java有一个dup2_x2指令,根据文档,该指令具有以下行为:

复制操作数堆栈上的一个或两个值,并按原始顺序将重复的值插入操作数堆栈中。

javac是否使用此指令生成字节码?它的潜在用例是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-05 17:18:49

例如,下面的代码

代码语言:javascript
复制
public static Long example1(Long[] array, int i, long l) {
    return array[i]=l;
}
public static long example2(long[] array, int i, long l) {
    return array[i]=l;
}

编译成

代码语言:javascript
复制
  public static java.lang.Long example1(java.lang.Long[], int, long);
    Code:
       0: aload_0
       1: iload_1
       2: lload_2
       3: invokestatic  #1        // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
       6: dup_x2
       7: aastore
       8: areturn

  public static long example2(long[], int, long);
    Code:
       0: aload_0
       1: iload_1
       2: lload_2
       3: dup2_x2
       4: lastore
       5: lreturn

看,Ideone演示

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72120380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档