Arrays always start at index 0, so for (int i = 1;i <= 3;i++) is wrong twice. Once for 1 and once for not using SIZE. You make a multidimensional array like,
public final int SIZE = 3;
int[][] tables = new int[SIZE][SIZE];
Note that every value in tables is 0. You could use Arrays.fill(int[],int) to give every element a single value,
Arrays.fill(tables, 1);
// [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
Or, you might use a pair of for loops like
for (int i = 0; i < tables.length; i++) {
for (int j = 0; j < tables[i].length; j++) {
tables[i][j] = (tables[i].length * i) + j;
}
}
// [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
And you can also use a literal assignment and you might use Arrays.deepToString(Object[]) to display your multi-dimensional arrays like,
int[][] tables = { { 8, 7, 6 }, { 5, 4, 3 }, { 2, 1, 0 } };
// [[8, 7, 6], [5, 4, 3], [2, 1, 0]]
System.out.println(Arrays.deepToString(tables));