How Lambda Expressions Are Translate In Java Byte Code

前端 未结 1 1041
天命终不由人
天命终不由人 2020-12-06 05:07

I am trying to create an example using lambda expression in java and i am using offical JDK8. My example was run successfully. But when i trying to check how the compiler tr

相关标签:
1条回答
  • 2020-12-06 05:20

    Use javap additional arguments to print full information about class: javap -v -p -s -c

    For your example, source code of lambda will be:

    private static java.lang.Integer lambda$main$0(java.lang.Integer, java.lang.Integer);
        descriptor: (Ljava/lang/Integer;Ljava/lang/Integer;)Ljava/lang/Integer;
        flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
        Code:
          stack=2, locals=2, args_size=2
             0: aload_0       
             1: invokevirtual #17                 // Method java/lang/Integer.intValue:()I
             4: aload_1       
             5: invokevirtual #17                 // Method java/lang/Integer.intValue:()I
             8: imul          
             9: invokestatic  #2                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
            12: areturn       
          LineNumberTable:
            line 10: 0
          LocalVariableTable:
            Start  Length  Slot  Name   Signature
                0      13     0     a   Ljava/lang/Integer;
                0      13     1     b   Ljava/lang/Integer;
    }
    
    0 讨论(0)
提交回复
热议问题