This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
Multidimensional arrays are constructed as "arrays of arrays". So, when you have int myArr = new int;, "myArr", is a one dimensional array, but each element is itself an array. So, it seems like myArr is two dimensional.
Because myArr is just an array, it behaves the same as any array - each element must be of the correct type. This means you can assign any int to an element of myArr. Eg, you could do "myArr = new int;". Assignment between array types, as you point out, doesn't do any length checking.
The initialisation code "new int" creates an initial 'matrix' of size 2x2, but there is no restriction that myArr must always reference a 'matrix' of this size.