AnyCompiler

Variables y Tipos

Los tipos primitivos de Java incluyen int, double, boolean, y char — cada variable tiene un tipo declarado, y ese tipo queda fijo una vez declarado. Ten en cuenta que estos son primitivos, no objects: un boolean se imprime como la palabra true o false, no como 0 o 1.

public class Main {
    public static void main(String[] args) {
        int age = 30;
        double price = 19.99;
        boolean isStudent = false;
        char grade = 'A';
        System.out.println(age + " " + price + " " + isStudent + " " + grade);
    }
}
Output
30 19.99 false A

Inferencia de tipo con var

var deja que el compilador infiera el tipo de una variable a partir de su inicializador, introducido en Java 10 — útil cuando el tipo es obvio o verboso. Igual produce un tipo fijo y completamente estático en tiempo de compilación; no es un tipo dinámico como podría serlo en un lenguaje de scripting.

public class Main {
    public static void main(String[] args) {
        var count = 42; // inferred as int
        var pi = 3.14159; // inferred as double
        System.out.println(count + " " + pi);
    }
}
Output
42 3.14159

Cómo se ve un error real de incompatibilidad de tipos

El compilador de Java comprueba que los tipos de cada asignación realmente coincidan — asignar un String donde se espera un int es un error de compilación, no algo que se detecte después en tiempo de ejecución. Esto es genuinamente lo que reporta javac — capturado de una ejecución real, no escrito para parecer plausible:

public class Main {
    public static void main(String[] args) {
        int age = "thirty";
        System.out.println(age);
    }
}
Output
Main.java:3: error: incompatible types: String cannot be converted to int
        int age = "thirty";
                  ^
1 error

Nada se ejecuta en absoluto — no hay resultado, solo el error. Detectar esto en tiempo de compilación en vez de en tiempo de ejecución es uno de los principales beneficios del tipado estático de Java.

Siguiente: operators y control de flujo — if/else, for, while, y switch.

Practice exercise

Declara una variable temperature de tipo double fijada en 72.5 y una variable isSunny de tipo boolean fijada en true. Imprímelas juntas separadas por un espacio.