Stack: int value (argument passed in), reference of type Par,
reference of type Par
5: iconst_1
Stack: 1, int value (argument passed in), reference of type
Par, reference of type Par
6: isub
Stack: int value (result of subtraction), reference of type
Par, reference of type Par
7: invokespecial #5; //Method "<init>":(I)V
Stack: reference of type Par
10: astore_1
Stack: <empty>
11: aload_1
Stack: reference of type Par
12: dup
Stack: reference of type Par, reference of type Par
13: getfield #2; //Field field3:I
Stack: int value, reference of type Par
16: iconst_1
Stack: int value, int value, reference of type Par
17: iadd
Stack: int value, reference of type Par
18: putfield #2; //Field field3:I
Stack: <empty>
21: return
void test3(); //Dynamic dispatch, 1 parameter (hidden/the object being
initialized), 0 locals
Code:
Stack: <empty>
0: return
void test4(int); //Dynamic dispatch, 2 parameters (1 hidden/the object
being initialized, 1 integer), 0 locals
Code:
Stack: <empty>
0: aload_0
Stack: reference of type Par
1: iload_1
Stack: int value, reference of type Par
2: ldc #6; //int 1999999
Stack: int value, int value, reference of type Par
4: iadd
Stack: int value, reference of type Par
5: putfield #3; //Field field4:I
Stack: <empty>
8: getstatic #7; //Field field1:I
Stack: int value (field1's type)
11: iconst_1
Stack: int value, int value