Monday, 3 November 2014






Name : Shreyal Mandot

Title : Compile sample program.Type the following command and view bytecodes.javap -c MYCLASS




public class MyClass
{

int num;

public MyClass()
{

num=0;

}

public MyClass(int num)
{

this.num=num;

}

public static void main(String[] args)
{

MyClass m1=new MyClass();

int n=Integer.parseInt(args[0]);

MyClass m2=new MyClass(n);

System.out.println(m1);
System.out.println(m2);

}

}

/*

Output-

[prady@localhost setA]# javac MyClass.java
[prady@localhost setA]# javap -c MyClass
Compiled from "MyClass.java"
public class MyClass extends java.lang.Object{
int num;

public MyClass();
  Code:
   0: aload_0
   1: invokespecial #1; //Method java/lang/Object."<init>":()V
   4: aload_0
   5: iconst_0
   6: putfield #2; //Field num:I
   9: return

public MyClass(int);
  Code:
   0: aload_0
   1: invokespecial #1; //Method java/lang/Object."<init>":()V
   4: aload_0
   5: iload_1
   6: putfield #2; //Field num:I
   9: return

public static void main(java.lang.String[]);
  Code:
   0: new #3; //class MyClass
   3: dup
   4: invokespecial #4; //Method "<init>":()V
   7: astore_1
   8: aload_0
   9: iconst_0
   10: aaload
   11: invokestatic #5; //Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
   14: istore_2
   15: new #3; //class MyClass
   18: dup
   19: iload_2
   20: invokespecial #6; //Method "<init>":(I)V
   23: astore_3
   24: getstatic #7; //Field java/lang/System.out:Ljava/io/PrintStream;
   27: aload_1
   28: invokevirtual #8; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
   31: getstatic #7; //Field java/lang/System.out:Ljava/io/PrintStream;
   34: aload_3
   35: invokevirtual #8; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
   38: return
[prady@localhost setA]#

*/

No comments:

Post a Comment