Download LoopCompare.java source file
C:\Temp>type Greet1.java // Traditional first program, display a friendly greeting! // Written by Wayne Pollock, Tampa, FL USA, 1999 class Greet1 { public static void main ( String [] args ) { System.out.println( "Hello, World!" ); } } C:\Temp>javac Greet1.java C:\Temp>javap -c Greet1 Compiled from "Greet1.java" class Greet1 extends java.lang.Object{ Greet1(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #3; //String Hello, World! 5: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return } C:\Temp>type LoopCompare.java // Loop comparison - Use to show bytecode for bycode demo with javap. // Written by Wayne Pollock, Tampa, FL USA, 2005 class LoopCompare { public static void main ( String [] args ) { for ( int i = 0; i < 5; ++i ) System.out.println( "for loop" ); int i = 0; while ( i < 5 ) { System.out.println( "while loop" ); ++i; } } } C:\Temp>javac LoopCompare.java C:\Temp>javap -c LoopCompare Compiled from "LoopCompare.java" class LoopCompare extends java.lang.Object{ LoopCompare(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: return public static void main(java.lang.String[]); Code: 0: iconst_0 1: istore_1 2: iload_1 3: iconst_5 4: if_icmpge 21 7: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; 10: ldc #3; //String for loop 12: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V 15: iinc 1, 1 18: goto 2 21: iconst_0 22: istore_1 23: iload_1 24: iconst_5 25: if_icmpge 42 28: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; 31: ldc #5; //String while loop 33: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V 36: iinc 1, 1 39: goto 23 42: return }