使用循环时遇到报错的问题

问题遇到的现象和发生背景

第一个for和不会报错第三个不是同一个的一个逻辑吗?

用代码块功能插入代码,请勿粘贴截图
public static void main(String[] args) {
        int[] arr = {66,55,44,33,22,11};
        int j = 0;
        for(int i = arr.length;i >= 0;i--){
                int a = arr[j];
                arr[j] = arr[i];
            arr[i] = a;
            j++;            
        }for(int i = 0;i < arr.length;i++){
            System.out.print(arr[i] + "\t");
        }
        for(int i = 0;i 2;i++){
            int temp = arr[arr.length-1-i];
            arr[arr.length-1-i] =arr[i];
            arr[i] = temp;
        }
        for(int i = 0;i < arr.length;i++){
            System.out.print(arr[i] + "\t");
        }

###### 运行结果及报错内容 
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
    at shuzu.the2tt.main(the2tt.java:10)

###### 我的解答思路和尝试过的方法 
报错内容啥都没说嘛
###### 我想要达到的结果
```java