@@ -0,0 +1,1480 @@
+%0A%0A%0Apublic class Loops %7B%0A%0A  public static void main(final String%5B%5D ARGV)%7B%0A    loopOne();%0A    loopTwo();%0A  %7D%0A%0A%0A  /**%0A   * Saving one bytecode by comparing to zero.%0A   *%0A   * See: https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings%0A   * See: http://cory.li/bytecode-hacking/%0A   *%0A   *         3: iinc          0, -1%0A   *         6: iload_0%0A   *         7: iflt          20     // here we only need to load i from #6 as we're counting up%0A   *        10: getstatic     #4     // Field java/lang/System.out:Ljava/io/PrintStream;%0A   *        13: iload_0%0A   *        14: invokevirtual #5     // Method java/io/PrintStream.println:(I)V%0A   *        17: goto          3%0A   *%0A   */%0A  public static void loopOne()%7B%0A    for (int i = 10 ; --i %3E= 0 ;) %7B %0A      System.out.println(i);%0A    %7D%0A  %7D%0A%0A%0A  /**%0A   * Incurring one extra bytecode by using a normal Loop.%0A   *%0A   * See: https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings%0A   * See: http://cory.li/bytecode-hacking/%0A   *%0A   *     2: iload_0%0A   *     3: bipush        10%0A   *     5: if_icmpge     21    // here we need to load i from #2 and 10 from #3%0A   *     8: getstatic     #4    // Field java/lang/System.out:Ljava/io/PrintStream;%0A   *    11: iload_0%0A   *    12: invokevirtual #5    // Method java/io/PrintStream.println:(I)V%0A   *    15: iinc          0, 1%0A   *    18: goto          2%0A   *%0A   */%0A  public static void loopTwo()%7B%0A    for (int i = 0 ; i %3C 10 ;i++) %7B %0A      System.out.println(i);%0A    %7D%0A  %7D%0A%0A%0A%0A%0A%0A%7D%0A%0A

add loops investigation