title: 关于JVM字节码中dup指令的问题？
desc: 一个new对象的语句 Test t new Test ，编译成字节码后会是这个样子<br><br>new jvm.study.Test 1 <br> dup <br>invokespecial jvm.study.Test 16 <br>astore1 t <br><br>请问这里的dup指令有什么用？
topic: Java 虚拟机（JVM）
content: 题主的源码中， new Test这个表达式的作用是： 创建并默认初始化一个Test类型的对象调用Test类的signature为 <init>V 的构造器表达式的值为一个指向这个新建对家的引用。对应到字节码，我们可以看到： new Test 对应上面的1invokespecial Test.<init>V 对应上面的2然而3是怎么来的？再看实际的字节码： operand stack ...new Test ...， refdup ...， ref， refinvokespecial Test.<init>V ...，
answerer_tags: 软件工程师、主攻高级编程语言虚拟机的设计与实现