hi
regarding the first assumption its correct.
if you take 2D array if any object instead of int then casting to Object[][] is allowed at line 4.
on first iteration with i=0
ia = obj[0] // {1,2}
on next iteration with i=1
ia = obj[1] // {0,1,2}
on next iteration with i=2
ia = obj[2] // {-1,0,2}
so its a 1D array only and we can surly print elements of it with single index
pinky