Documentación de Java
Referencia concisa y basada en ejemplos de Java. Lee el concepto, mira el código y practícalo en un recorrido de Coddy.
Inicia un recorrido guiado de JavaPrimeros pasos
- Qué es JavaQué es realmente Java, cómo la JVM permite que un mismo programa compilado se ejecute en cualquier sitio y qué tipo de software se construye con Java.
- Instalar JavaCómo instalar el Kit de Desarrollo de Java (JDK), elegir versión y proveedor, y confirmar que java y javac funcionan desde la línea de comandos.
- Ejecutar JavaEl ciclo de dos pasos compilar-y-ejecutar que hay detrás de todo programa Java: convierte el código fuente .java en bytecode con javac y luego ejecuta el archivo .class con java.
- Sintaxis de JavaLa forma de un programa en Java: el método `main`, las sentencias y los puntos y comas, los bloques y las llaves, y las reglas que el compilador exige antes de que tu código llegue a ejecutarse.
- ComentariosCómo escribir comentarios en Java: comentarios de una línea //, bloques de varias líneas /* */ y comentarios de documentación Javadoc /** */, además de cuándo usar cada uno y qué evitar.
Variables y tipos
- VariablesCómo funcionan las variables en Java: declararlas con un tipo, asignarles valores, las reglas de nombrado, la palabra clave var, las constantes con final y las reglas de ámbito que deciden dónde vive una variable.
- Tipos de datosLos tipos de datos de Java explicados: los ocho tipos primitivos, los tipos de referencia, los valores por defecto, los literales y sufijos, el desbordamiento y cuándo usar cada tipo numérico.
- CadenasCómo funcionan las cadenas en Java: cómo crearlas, unirlas con +, por qué son inmutables, compararlas con equals y los métodos de String del día a día como length, substring y replace.
- Formato de cadenasCómo dar formato a cadenas en Java con String.format y printf: los especificadores de formato para números, relleno, decimales, además de los text blocks y el método formatted.
- OperadoresCómo funcionan los operadores de Java -aritméticos, de comparación, lógicos, de asignación, de incremento y el operador ternario- además de la división entera, la precedencia y los errores típicos que pillan a los principiantes.
- Conversión de tiposCómo convierte Java entre tipos: ampliación automática, conversiones de reducción explícitas, qué datos se pierden al reducir y cómo convertir entre números y cadenas.
Flujo de control
- if-elseCómo tomar decisiones en Java con if, else if y else: condiciones booleanas, encadenamiento de ramas, anidamiento, el operador ternario y los errores más comunes que confunden a la gente.
- switchLa sentencia switch de Java explicada: etiquetas case, break y fall-through, la rama default, agrupación de casos, la forma moderna con flecha y las expresiones switch.
- Bucle forEl bucle for de Java explicado: el clásico bucle de tres partes, recorrer arrays y listas, bucles anidados, break y continue, y el for-each mejorado.
- Bucles whileEl bucle while de Java explicado: el while que comprueba la condición primero, el do-while que se ejecuta al menos una vez, leer entrada hasta un valor centinela, break y continue, y cómo evitar bucles infinitos.
- Bucle for-eachEl bucle for-each de Java (for mejorado) explicado: iteración limpia sobre arrays y colecciones, cuándo usarlo y la trampa de la modificación que pilla a todo el mundo.
Arreglos y colecciones
- ArraysCómo funcionan los arrays en Java: longitud fija, cómo declararlos e inicializarlos, indexación, length, recorridos, arrays multidimensionales y la clase de utilidad Arrays.
- ArrayListCómo usar el ArrayList de Java - la lista redimensionable que eliges en lugar de un array normal - cubriendo añadir, obtener, eliminar, tamaño, recorrer y ordenar.
- HashMapCómo usar el HashMap de Java para búsquedas clave-valor: put, get, getOrDefault, containsKey, iterar sobre entradas y los patrones que más utilizarás.
- HashSetCómo usar el HashSet de Java para colecciones de valores únicos: añadir, contains, eliminar, quitar duplicados de una lista y combinar conjuntos con unión, intersección y diferencia.
- Iterar coleccionesLas formas de recorrer colecciones en Java: el bucle for-each, el Iterator, los bucles con índice y el método forEach, y cómo eliminar elementos de forma segura mientras se itera.
Métodos
- MétodosQué es un método en Java, cómo declararlo y llamarlo, valores de retorno frente a void, el método estático main y cómo los métodos mantienen el código organizado y reutilizable.
- Parámetros de métodosCómo funcionan los parámetros de los métodos en Java: pasar argumentos, la diferencia entre parámetros y argumentos, la regla de paso por valor de Java y la devolución de valores.
- Sobrecarga de métodosCómo la sobrecarga de métodos en Java permite que varios métodos compartan un nombre pero reciban parámetros distintos, cómo el compilador elige una sobrecarga y qué trampas de ambigüedad evitar.
- VarargsCómo los varargs (...) de Java permiten que un método acepte cualquier número de argumentos, cómo se convierten en un arreglo, la regla de un solo vararg al final, y las trampas de la llamada vacía y la ambigüedad.
Clases y objetos
- ClasesQué es una clase en Java, cómo definir campos y métodos, crear objetos con new, el papel de this y por qué el estado de instancia vive en el objeto.
- ConstructoresCómo funcionan los constructores en Java: el constructor por defecto, los constructores parametrizados, this, la sobrecarga de constructores y el encadenamiento con this() y super().
- HerenciaCómo una subclase de Java hereda campos y métodos con extends, llama al padre mediante super y sobrescribe comportamiento, además de los errores más comunes.
- InterfacesQué es una interfaz en Java, cómo definirla e implementarla, los métodos default y static, y en qué se diferencian las interfaces de las clases abstractas.
- Clases abstractasQué es una clase abstracta en Java, cómo declarar métodos abstractos, por qué no puedes instanciarla y cuándo elegir una clase abstracta en lugar de una interfaz.
- PolimorfismoCómo el polimorfismo de Java permite que una variable haga referencia a muchos tipos, por qué los métodos sobrescritos se resuelven en tiempo de ejecución y cómo usar upcasting, downcasting e instanceof de forma segura.
- Modificadores de accesoCómo los cuatro niveles de acceso de Java - public, private, protected y package-private - controlan qué puede ver y tocar el resto del código.
- Miembros estáticosQué hace la palabra clave static en Java, cómo los campos y métodos static pertenecen a la clase en lugar de a los objetos, y cuándo recurrir a los bloques static y a las constantes.
- EnumsQué es un enum en Java, cómo declararlo, añadir campos y métodos, usarlo en un switch y por qué un enum supera a un montón de constantes int o String.
Genéricos y funcional
- GenéricosQué son los genéricos de Java, cómo escribir clases y métodos genéricos, parámetros de tipo acotados, comodines y por qué importa el borrado de tipos.
- Expresiones lambdaQué es una expresión lambda en Java, la sintaxis de la flecha, cómo implementa una interfaz funcional, las referencias a métodos y la captura de variables.
- StreamsCómo procesar colecciones con la Stream API de Java - filter, map, sorted, collect, count y reduce - construyendo pipelines legibles en lugar de bucles manuales.
- OptionalQué es java.util.Optional, cómo crear uno y cómo leer su valor de forma segura con map, filter, orElse e ifPresent en lugar de comprobaciones de null.
Errores y depuración
- ExcepcionesQué es una excepción en Java, cómo leer una traza de pila, la distinción entre excepciones comprobadas y no comprobadas, la jerarquía de excepciones y cómo lanzar las tuyas.
- try-catchCómo usar try-catch en Java para manejar excepciones: capturar tipos específicos, el bloque finally, try-with-resources y los errores que ocultan bugs.
- NullPointerExceptionQué significa realmente un NullPointerException en Java, las formas habituales de provocarlo, cómo leer el mensaje y los patrones que lo evitan.