Why second loop is faster than first here.
public class Test2 {
    public static void main(String s[]) {
        long start, end;
        int[] a = new int[2500000];
        int length = a.length;
        start = System.nanoTime();
        for (int i = 0; i < length; i++) {
            a[i] += i;
        }
        end = System.nanoTime();
        System.out.println(end - start + " nano  with i < a.length ");
        int[] b = new int[2500000];
        start = System.nanoTime();
        for (int i = b.length - 1; i >= 0; i--) {
            b[i] += i;
        }
        end = System.nanoTime();
        System.out.println(end - start + " nano with i > = 0");
    }
}
Output is
6776766 nano  with i < a.length 
5525033 nano with i > = 0
update - I have update the question according to the suggestion but I still see the difference in time. first loop is taking more time then second loop.
 
     
     
     
    