// Lo que cambia al pasar de C a Java: tipos con tamaño fijo, String como
// objeto y arreglos que conocen su longitud.
void main() {
    // Tipos primitivos: el tamaño no depende de la máquina.
    int n = 2_147_483_647;          // int siempre tiene 32 bits
    long big = n + 1L;              // long siempre tiene 64 bits
    IO.println("n + 1 como int:  " + (n + 1));
    IO.println("n + 1 como long: " + big);

    // boolean no es un número: if (1) no compila en Java.
    boolean ready = n > 0;
    IO.println("ready = " + ready);

    // String es un objeto con métodos, no un char* terminado en '\0'.
    String name = "Ada Lovelace";
    IO.println(name.length() + " caracteres, en mayúsculas: " + name.toUpperCase());

    // Un arreglo es un objeto que sabe cuántos elementos tiene.
    int[] marks = new int[4];       // los elementos empiezan en 0
    marks[0] = 15;
    marks[3] = 18;
    int sum = 0;
    for (int i = 0; i < marks.length; i++) {
        sum += marks[i];
    }
    IO.println("marks.length = " + marks.length + ", suma = " + sum);
}
