来看看java 反编译出来的东西,详细理解i++与++i
来源:互联网 发布:java时间序列分析预测 编辑:程序博客网 时间:2024/06/03 05:06
public class Inc {public static void main(String[] args) {int j = 0;j = j++ + j++;System.out.println(j);}}//1D:\Eclipse\eclipse-3.5.0\test\bin>javap -c IncCompiled from "Inc.java"public class Inc extends java.lang.Object{public Inc(); Code: 0: aload_0 1: invokespecial #8; //Method java/lang/Object."<init>":()V 4: returnpublic static void main(java.lang.String[]); Code: 0: iconst_0 1: istore_1 2: iload_1 3: iinc 1, 1 6: iload_1 7: iinc 1, 1 10: iadd 11: istore_1 12: getstatic #16; //Field java/lang/System.out:Ljava/io/PrintStream; 15: iload_1 16: invokevirtual #22; //Method java/io/PrintStream.println:(I)V 19: return}public class Inc {public static void main(String[] args) {int j = 0;j = ++j + ++j;System.out.println(j);}}//3D:\Eclipse\eclipse-3.5.0\test\bin>javap -c IncCompiled from "Inc.java"public class Inc extends java.lang.Object{public Inc(); Code: 0: aload_0 1: invokespecial #8; //Method java/lang/Object."<init>":()V 4: returnpublic static void main(java.lang.String[]); Code: 0: iconst_0 1: istore_1 2: iinc 1, 1 5: iload_1 6: iinc 1, 1 9: iload_1 10: iadd 11: istore_1 12: getstatic #16; //Field java/lang/System.out:Ljava/io/PrintStream; 15: iload_1 16: invokevirtual #22; //Method java/io/PrintStream.println:(I)V 19: return}public class Inc {public static void main(String[] args) {int j = 0;j = ++j + j++;System.out.println(j);}}//2D:\Eclipse\eclipse-3.5.0\test\bin>javap -c IncCompiled from "Inc.java"public class Inc extends java.lang.Object{public Inc(); Code: 0: aload_0 1: invokespecial #8; //Method java/lang/Object."<init>":()V 4: returnpublic static void main(java.lang.String[]); Code: 0: iconst_0 1: istore_1 2: iinc 1, 1 5: iload_1 6: iload_1 7: iinc 1, 1 10: iadd 11: istore_1 12: getstatic #16; //Field java/lang/System.out:Ljava/io/PrintStream; 15: iload_1 16: invokevirtual #22; //Method java/io/PrintStream.println:(I)V 19: return}