Тема: Допоможіть знайти помилку в коді
public class my_arr 
{
   public static void main(String[] args)
   {
       int[]arr;
       arr=new int[] {5, 7, 3, 9, 4, 1, 6};
       int n=arr.length;
       int i;
       System.out.print("масив до сортування: ");
       for ( i=0; i<n; i++)
       {
           System.out.print(arr[i]+" ");
       }
       for (int j=1; j<n; j++ )
       { 
           for( i=0;i<n-j; i++)
           {
             if( arr[i]>arr[i+i])
             {
                 int z=arr[i];
                 arr[i]=arr[i+1];
                 arr[i+1]=z;  
             }
           } 
       }
       System.out.print("масив після сортування: ");
       for ( i=0; i<n; i++)
       {
           System.out.print(arr[i]+" ");
       }
   }   
}виводить помилку Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
    at my_arr.main(my_arr.java:18)
поясніть, будь ласка, мені чому, а то я новачок і не можу зрозуміти.