Multi-dimensional array is a necessary data structures for numerical applications. Java does not have built-in multi-dimensional arrays. Instead, a multi-dimensional array is emulated with an array of arrays. This powerpoint slide deck illustrates how to optimize Java array operations to achieve reasonable performance. Matrix multiplication is used as an example.
An article written in 1998, but still a interesting read today. It shows Java's performance was good enough even in 1998 (when JIT was just released) compared to C.