Indeed, I can imagine it depends a great deal on the structure of your code, and what you are doing with the arrays.
Keeping just one int[][] within scope may allow more efficient use of the direct access local variables.
However this may not help at all if you have a smart bytecode optimiser that can reorder local variable usage for optimum size.
also, if the object you are representing with the int [] has alot of attributes,
Is it safe to assume zip compression will compress :-
int [] a = new int[200];
int [] b = new int[200];
…
int [] y = new int[200];
int [] z = new int[200];
Down to less than :-
int [][] aa = new int[26][200];
Perhaps it is a safe assumption, perhaps not.
Either way, I would imagine the difference between the 2 approaches will be less than 30bytes in the vast majority of cases.
Algorithmic optimisations are always a better place to start =)
:edit:
The Interlaced sequential is kinda funky, and is better for that simplistic test case - however I can’t think when I would ever want to access every element of the array sequencially (and only once!)
More often than not you will be accessing the elements randomly.