Dein Lehrbuch ist falsch! Das Schreiben eines solchen Codes ist sinnlos und es ist eine Verschwendung Ihrer Zeit, ihn einzugeben, und der Computerzeit, ihn auszuführen.
Wie bereits erwähnt, garantiert der Compiler, dass Variablen außerhalb von Methoden (Klassen- / Instanzvariablen) den Wert 0, false oder null erhalten. Wie Sie wahrscheinlich wissen, gibt der Compiler keine Variablen innerhalb von Methodenwerten an und zwingt Sie stattdessen, ihnen einen Wert zu geben, bevor sie verwendet werden.
Wenn Sie die Dinge "richtig" machen, werden Sie feststellen, dass sich etwa 90% bis 95% Ihrer "Variablen" niemals ändern, nachdem ihnen ein Wert zugewiesen wurde. Neue Programmierer neigen jedoch dazu, solche Dinge zu tun:
int x = 0;
x = 5;
Dies verhindert, dass Sie x als "final" markieren können. Wenn Sie x als "final" markieren können, wird eine versehentliche Änderung des Werts verhindert, wodurch Fehler vermieden werden.
Ich würde den Code wie folgt schreiben:
final int x;
x = 5;
Dies wird als leeres Finale bezeichnet (eine endgültige Variable, die beim Deklarieren keinen Wert hat).
Wenn Sie sich daran erinnern, dass Klassen- / Instanzvariablen zur Laufzeit initialisiert werden, schreiben Sie hoffentlich keinen Code, um sie mit Wegwerfwerten zu initialisieren, und können sie dann als endgültig markieren.
Meine persönliche Praxis besteht darin, alles immer als endgültig zu markieren, bis ich feststelle, dass ich es ändern muss, und eine Variable niemals zu initialisieren, bis ich den tatsächlichen Wert kenne, den sie haben soll. Dadurch wird der Code schneller (nicht erkennbar, da Zuweisungen im Allgemeinen sehr schnell sind) und sicherer, da ich einen Wert selten versehentlich ändere, wenn ich dies nicht sollte.
Arrays.fill(myArr, 0). Aber es ist immer noch ein lächerlicher Vorschlag. Wenn es um Klarheit geht, geben Sie einen verdammten Kommentar ein. Machen Sie keine unnötige Arbeit.