array literal in Java

```
class Main {
    public static void main(String[] args) {
        int [][] m1 = {{1, 2}, {3, 4}};
        int [][] m2 = new int[][]{{1, 2}, {3, 4}};
        int [][] m3 = {new int[2], new int[3]}; 
    }
}
```
Java array initialization must be used at the declaration time.
```
class Main {
    public static void main(String[] args) {
        int [] m1;
        m1 = {1, 2}; // illegal start of expression
        int[] m2;
        m2 = new int[]{ 1, 2, 3 }; // works because it is an anonymous array
    }
}
```