Part1 throws an error while part2 does not, why?
//part 1
Object[] arr = new Object[10000000];
Object[] arr1 = arr;
for(int i = 0; i < 100; i++) {
arr1[0] = new Object[10000000];
arr1 = (Object[]) arr1[0];
}
//part 2
Object[] arr1 = new Object[10000000];
for(int i = 0; i < 100; i++) {
arr1[0] = new Object[10000000];
arr1 = (Object[]) arr1[0];
}