Digital Stronghold - Software Engineering, Musicality and Facts of Life…



June 16, 2007

Java bytecode disassembly

In every programmer’s journey, the legendary “Hello World!” program excuses no one. So I wrote, compiled, then disassembled it.

public class Hello {
	
	public static void main(String[] args) {
		System.out.println("Hello World!");
	}
	
}

I fired up a hex editor to analyze the bytecode’s disassembly. This part contains the headers, class name and the superclass being extended. This is how a JDK 1.5-compiled bytecode looks.

.bytecode 49.0
.source "Hello.java"
	
.class public Hello
.super java/lang/Object

By default, a constructor is generated. Check that it constructs itself as an object of type ‘Object’ naturally because Java classes extend the ‘Object’ class. Here we have shown that a constructor is just a method.

.method public ()V
  .limit stack 1
  .limit locals 1
  .line 1
    aload_0 ; met001_slot000
    invokespecial java/lang/Object.()V
    return
.end method

Here’s the main method.

.method public static main([Ljava/lang/String;)V
  .limit stack 2
  .limit locals 1
  .line 4
    getstatic java/lang/System.out Ljava/io/PrintStream;
    ldc "Hello World!"
    invokevirtual java/io/PrintStream.println(Ljava/lang/String;)V
  .line 5
    return
.end method

Easy isn’t it?

3 Comments »

The URI to TrackBack this entry is: http://eradicus.blogsome.com/2007/06/16/java-byte-code-disassembly/trackback/

  1. iyo no comprende.

    Comment by south coast marine — June 16, 2007 @ 6:05 pm

  2. I need an web developer for an new project. Please help jeff

    Comment by jeff dawson — July 10, 2007 @ 9:46 pm

  3. Nice post,

    Keep up the good work,

    Anyway, thanks for the post

    Comment by web development — October 23, 2009 @ 9:06 pm

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.

Theme designed by Joset Anthony Zamora


Digital Stronghold

↑ Get Headline Animator