Variables: espacios reservados en memoria para almacenar datos que pueden cambiar. Deben declararse con un tipo y un nombre siguiendo la convención camelCase.
Constantes: variables cuyo valor no puede ser modificado una vez asignado. Se declaran con la palabra clave final.
Tipado en Java:
Estático: el tipo de las variables se comprueba en tiempo de compilación.
Fuerte: no se permiten operaciones entre tipos incompatibles sin conversión explícita.
Explícito: se debe indicar el tipo de dato al declarar la variable.
Tipos de datos primitivos:
Enteros:
byte (8 bits)
short (16 bits)
int (32 bits)
long (64 bits)
Punto flotante:
float (32 bits)
double (64 bits)
Carácter:
char (16 bits, Unicode)
Lógico:
boolean (true o false)
Overflow / Underflow: situación en la que un valor excede el rango máximo o mínimo de su tipo de dato, "rebotando" al extremo opuesto.
Conversión de tipos (Casting): proceso de transformar un dato de un tipo a otro, pudiendo ser automático (promoción) o explícito mediante el operador (tipo).
Scanner: clase del paquete java.util utilizada para leer datos desde la entrada estándar (System.in).
Buffer de entrada: memoria temporal donde se almacenan las pulsaciones de teclado. Métodos como nextInt() pueden dejar restos en el buffer (saltos de línea) que deben limpiarse con nextLine().
Salida estándar: métodos System.out.print(), System.out.println() (con salto de línea) y System.out.printf() (salida formateada).
Definición: estructura que permite agrupar múltiples elementos del mismo tipo bajo un único nombre.
Características:
Tamaño fijo: una vez creado, el número de elementos no puede cambiar.
Homogéneos: todos sus elementos deben ser del mismo tipo de dato.
Índices: posición de un elemento en el array, comenzando siempre por 0 hasta longitud - 1.
Referencias: en Java, un array es un objeto. La variable del array guarda una referencia a la dirección de memoria donde se encuentra el objeto, no los valores en sí.
Arrays multidimensionales: arrays cuyos elementos son otros arrays, permitiendo representar estructuras como tablas o matrices.
Arrays de 2 dimensiones: tablas o matrices.
Arrays de 3 dimensiones: cubos.
Arrays de n dimensiones: hipercubos.
Clonación: proceso de crear una copia independiente de un array. Un simple = solo copiará la referencia, no los datos.