¡Su libro de texto está equivocado! Escribir dicho código no tiene sentido, y es una pérdida de tiempo tipearlo y que las computadoras lo ejecuten.
Como han dicho otros, el compilador garantiza que las variables fuera de los métodos (variables de clase/instancia) reciban un valor de 0, falso o nulo. Como probablemente sepa, el compilador no proporciona variables dentro de los valores de los métodos y, en su lugar, le obliga a darles un valor antes de que se utilicen.
Encontrarás, si haces las cosas "bien", que aproximadamente el 90% -95% de tus "variables" nunca cambian después de que se les da un valor. Sin embargo, los nuevos programadores tienden a hacer cosas como esta:
int x = 0;
// some code that never uses x
x = 5;
// more code that only reads x and never modifies it.
esto le impide ser capaz de marcar x como "final". Si puede marcar x como "final", entonces evita la modificación accidental del valor, lo que evita errores.
que iba a escribir el código como:
final int x;
// some code that never uses x
x = 5;
// more code that only reads x and never modifies it.
Esto se llama un final (una variable final que no tenga un valor cuando se declara) en blanco.
Si recuerda que las variables de clase/instancia son inicializadas por el tiempo de ejecución, con suerte, no escribirá el código para inicializarlas con los valores desechables, y luego podrá marcarlas como definitivas.
Mi práctica personal es marcar siempre todo como final hasta que encuentre que debo modificarlo, y nunca inicializar una variable hasta que sepa el valor real que quiero que tenga. Hacer esto hace que el código sea más rápido (no se nota ya que las tareas son generalmente muy rápidas) y más seguro ya que rara vez modifico accidentalmente un valor cuando no debería hacerlo.
tirar todos esos libros de texto. En el peor que deberían te he dicho que hacer una llamada a' Arrays.fill (myArr, 0) ' Pero sigue siendo una sugerencia ridícula, realmente si se trata de una cuestión de claridad, haga un comentario maldito, no haga un trabajo innecesario. –
El lenguaje Java garantiza que las variables se inicializan a un valor predeterminado (falso, 0, nulo, dependiendo de el tipo). No hay necesidad de inicializar manualmente una matriz, es solo un desperdicio de ciclos de CPU. –
Esos libros de texto probablemente fueron escritos por programadores C/C++, para los cuales las matrices recientemente asignadas tienen contenido no definido. Java intenta evitar el comportamiento indefinido. – Raedwald