so che simili questioni sono state poste diverse volte e sono stati ben risposto, ma ... erano circa zero gamma lunghezza di 1 dimensione come:Zero lunghezza multidimensionale matrice
int[] array = new int[0];
sembra che ci sia uno scopo per tali matrici nel caso in cui null non dovrebbe/non può essere utilizzato. Ma perché Java consente di creare cose del genere:
int[][][] multiDims = new int[5][0][9];
Naturalmente come nel semplice caso 1D otteniamo nulla da tale varietà se cerchiamo di iterare o qualcosa del genere e mi chiedo solo perché appare estremamente sgradevole per me. :-) Quanta memoria è allocata per una creatura così inutile?
La tua domanda * perché è consentito * o * quanta memoria è allocata *? – Manu
Gli sviluppatori scrivono sempre codice senza senso e non è possibile rilevare ogni combinazione inutile che uno sviluppatore può inventare. –
Sembrerebbe che tu possa compilare anche 'new int [-1]' con successo [ideone] (http://ideone.com/MtZLBs) (ovviamente fallisce in fase di runtime, comunque). Questo sembra il tipo di errore che strumenti come [Google's error-prono] (https://github.com/google/error-prone) potrebbero decidere di catturare (anche se sembra che non sia al momento, forse perché è solo * troppo * sciocco). –