¿Qué tipo de error ocurre cuando se usa una variable no inicializada?

Creo que el siguiente código de Java causaría un RuntimeError (técnicamente hablando) porque hace referencia a algo inexistente (al igual que acceder al octavo elemento en una matriz de tamaño 5).

int i;
System.out.println(i);

Sin embargo, el IDE lo atrapa y lo subraya en rojo. ¿Eso lo convierte en un error de sintaxis / compilador? ¿O un error de tiempo de ejecución que el IDE es lo suficientemente inteligente como para atrapar?

En realidad, ¿es un error del compilador pero técnicamente no es un error de sintaxis? Siempre pensé en ellos como sinónimos, pero quizás los errores de sintaxis son solo un tipo de error del compilador ...

Sé que es solo semántica, pero estoy dando una clase y me siento tonto sin saber qué tipo de error es técnicamente.

Respuesta 1

Es un error en tiempo de compilación, según lo especificado por JLS:

14.4.2. Ejecución de declaraciones de variables locales

Una declaración de declaración de variable local es una declaración ejecutable. Cada vez que se ejecuta, los declaradores se procesan en orden de izquierda a derecha. Si un declarador tiene una expresión de inicialización, la expresión se evalúa y su valor se asigna a la variable.

Si un declarante no tiene una expresión de inicialización, cada referencia a la variable debe estar precedida por la ejecución de una asignación a la variable, o se producirá un error en tiempo de compilación según las reglas de §16.

Respuesta: 2

¿Has intentado compilarlo sin el IDE?
En Java, se detecta un error de tiempo de compilación que dice: error: variable, es posible que no se haya inicializado

Respuesta: 3

He estado haciendo algo de codificación con String en Java8, Java 11, pero esta pregunta se basa en Java 8. Tengo este pequeño fragmento. final char e = (char) 200; // È Solo pensé que los caracteres entre 0.255 [...

Estoy creando una aplicación que, entre otras cosas, permite al usuario insertar un texto en un PDF, usando una capa. La posición del texto en la página PDF se puede establecer usando la aplicación, que representa el PDF usando ...

En java spec 17.3 Sleep and Yield 17.3 Sleep and Yield Thread.sleep hace que el hilo que se está ejecutando actualmente se suspenda (cese temporal de la ejecución) durante el tiempo especificado, sujeto al ...

Recientemente cambié el script gwt.xml para compilar solo 1 permutación (es decir, solo 8), esto resuelve mi problema anterior, sin embargo, surge un problema cosmético, que es una ventana emergente molesta que aparece cada vez ...