Jeśli to ma być "tablica-dynamiczna", nie LISTA oparta na tablicy, to deklaracja jest prawidłowa.
Nie ma jednoznacznie wskazania- jak powinno się to robić, więc generalnie, zależy od twojej struktury kodu.
Dużo lepiej jednak jest to zrobić, bez dodatkowych PRYMITYWNYCH ZMIENNYCH na stosie Javy ( nie ma tez zasad niedeklarowania tablic statycznych)
int[][] static_tablica= new int[10][5]; // gdy znasz wartosci i ma byc statyczna
int[][] dynamic_tablica = new int[x][y];
w przeciwnym wypadku, tak jak piszesz jest poprawnie. Niemniej jednak pozostawienie samej deklaracji
int[][] nazwa_tablicy;
nie ma praktycznego zastosowania -też może powodować pewne niejasności z jaką wielkością tablic mamy doczynienia z punktu programistty.
Jeśli natomiast zależy Ci na "obiektowych wlasciwosciach" i ma to być lista, wtedy poprawnie jest :
List<String> listFromArray = Arrays.asList(array); // gddzie array to tablica
dla dwóch wymiarów Iinteger to np.
List<List<String>> listOfLists = new ArrayList<List<String>>();
a jeśli sama pusta lista to
List<String> list = new ArrayList<String>();
Należy ściśle zaznaczyć, że TYP ZMIENNEJ powinien być Interfejsem, a nie typem samego obiektu.