Vorrei sapere perchè questo programma me lo compila ma quando lo vado ad eseguire mi da errore:



codice:
public class vettore{
	
		public static void main(String[] args){
			
				int[][] mat=  new int[1][1];
				
				//int[][] mat = {{1,2,3}, {1,2,3}};
				//mat[1][1] = 332;
				
				//mat[0] = new int[0];
				//mat[1] = new int[1];
				
				mat[1][1] = 332;
				
				System.out.println(mat[1][1]);
			
			} 
	
	}
Errore:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at vettore.main(vettore.java:13)
Press any key to continue...

Cioè se creo una matrice dandogli già i parametri e senza dirgli in pratica le dimensioni posso fare la mia bella assegnazione di tipo mat[1][1] = 332, invece dandogli subito la grandezza mi da errore, perchè? come andrebbe fatto il codice?

Grazie mille in anticipo,
Guylmaster.