The JLS calls this: int[][] an array of arrays, even though it also refers to it as a 2D array. I think about it as a 2D array or matrix because traversals through an array of arrays is exactly as you would expect traversing across a 2D matrix.
I usually consider stuff like this to be like the tomato pronunciation argument. This weekend I was working on a distributed multiprocessing project in C, where I am using a 2D char array, which is actually a dynamically allocated array of pointers to arrays of chars. Anyway, it just got me thinking about how many times I have read someone on these and other
Java boards refer to a 2D array only to get corrected semantically.
The reason this bothers me is that Sun, for better or worse, decided to hide memory details and the almost always refer to elements of the language and API in more abstract terms. Memory details are irrelevant, yet when it comes to this, a proper description of what is going on in memory is seen as more appropriate to a more abstract term that describes its behavior.
Does it really matter?
[ June 04, 2007: Message edited by: David McCombs ]