Menu
Coddy logo textTech

Hoja de Trucos de Java

Última actualización

Hola Mundo y estructura del programa

Cada programa Java se ejecuta a partir de un método main dentro de una clase.

ElementoCódigo
Declaración de clasepublic class Main { ... }
Punto de entradapublic static void main(String[] args) { ... }
Imprimir una líneaSystem.out.println("Hello, World!");
Imprimir sin salto de líneaSystem.out.print("text");
Leer entradaScanner sc = new Scanner(System.in);
Importar una claseimport java.util.ArrayList;
Comentarios// line y /* block */

Tipos de datos

Los primitivos van en minúscula; sus clases envoltorio van con mayúscula inicial.

TipoDescripción
intEntero con signo de 32 bits
longEntero con signo de 64 bits
double / floatNúmeros de punto flotante
booleantrue o false
charUn solo carácter Unicode de 16 bits
byte / shortEnteros de 8 bits / 16 bits
StringTexto inmutable (una clase, no un primitivo)
Integer, Double, BooleanClases envoltorio de los primitivos
varTipo local inferido (Java 10+)

Variables

OperaciónSintaxis
Declarar e inicializarint x = 5;
Inferencia de tipo (local)var name = "Ada";
Constantefinal double PI = 3.14159;
Concatenación de cadenasString s = "Hi " + name;
Convertir cadena a intint n = Integer.parseInt("42");
Convertir int a cadenaString s = String.valueOf(42);
Cadena con formatoString.format("%d items", n)

Control de flujo

SentenciaSintaxis
If / elseif (x > 0) { ... } else { ... }
Sentencia switchswitch (n) { case 1: ...; break; default: ...; }
Expresión switchvar s = switch (n) { case 1 -> "one"; default -> "other"; };
Bucle whilewhile (i < n) { ... }
Bucle do-whiledo { ... } while (i < n);
Bucle forfor (int i = 0; i < n; i++) { ... }
For mejorado (for-each)for (String item : list) { ... }
Break / continuebreak; sale de un bucle, continue; salta a la siguiente iteración

Métodos

OperaciónSintaxis
Definir un métodoint add(int a, int b) { return a + b; }
Sin valor de retornovoid greet() { ... }
Método estáticostatic int square(int x) { return x * x; }
Método públicopublic String getName() { return name; }
Varargsint sum(int... nums) { ... }
Llamar a un métodoint r = add(2, 3);
Llamar a un método estáticoMath.max(a, b);
Sobrecarga de métodosint max(int a, int b) y double max(double a, double b)

Clases y POO

OperaciónSintaxis
Definir una clasepublic class Dog { ... }
Campoprivate String name;
Constructorpublic Dog(String name) { this.name = name; }
Crear un objetoDog d = new Dog("Rex");
Getter / setterpublic String getName() { return name; }
Herenciaclass Puppy extends Dog { ... }
Interfazinterface Runnable { void run(); }
Implementar una interfazclass Task implements Runnable { ... }
Sobrescribir un método@Override public void speak() { ... }

Colecciones

Colecciones genéricas de java.util.

TipoUso y ejemplo
ArrayList<T>Array dinámico: list.add(1); list.get(0); list.size();
HashMap<K, V>Clave-valor: map.put("a", 1); map.get("a");
HashSet<T>Valores únicos: set.add(5); set.contains(5);
LinkedList<T>Lista doblemente enlazada, buena como cola/deque
ArrayDeque<T>Pila/cola: dq.push(x); dq.pop();
Arrayint[] nums = {1, 2, 3};
Iterar una listafor (T x : list) { ... }
Iterar un mapafor (var e : map.entrySet()) { e.getKey(); e.getValue(); }

Streams y lambdas

Pipelines de estilo funcional sobre colecciones (Java 8+).

OperaciónSintaxis
Expresión lambdax -> x * 2
Crear un streamlist.stream()
Filtrar.filter(n -> n > 0)
Mapear / transformar.map(n -> n * 2)
Ordenar.sorted() o .sorted(Comparator.reverseOrder())
Reducir / sumar.reduce(0, Integer::sum)
Contar / coincidir.count(), .anyMatch(n -> n > 5)
Recolectar en una lista.collect(Collectors.toList())
Para cada.forEach(System.out::println)

Patrones comunes (try/catch, genéricos)

PatrónSintaxis
Try / catchtry { ... } catch (Exception e) { ... }
Capturar una excepción específicacatch (IOException e) { ... }
Finallyfinally { ... } siempre se ejecuta
Try-with-resourcestry (Scanner sc = new Scanner(...)) { ... }
Lanzar una excepciónthrow new IllegalArgumentException("bad");
Clase genéricaclass Box<T> { T value; }
Método genérico<T> T first(List<T> list) { ... }
Tipo acotado<T extends Number>

La sintaxis, las colecciones y las operaciones de stream de Java que más usas, en una sola página. Esta hoja de trucos de Java es una referencia rápida para escribir Java: los tipos de datos, el control de flujo, las clases, las colecciones ArrayList/HashMap, la API de Streams y los patrones de excepciones y genéricos que usas a diario.

Todo lo que hay aquí es Java estándar (Java 8 y posteriores) y se compila con javac. Copia lo que necesites o prueba cualquier fragmento en vivo en el playground de Java, sin instalar ningún JDK.

Preguntas frecuentes sobre la hoja de trucos de Java

¿Esta hoja de trucos de Java es gratis?
Sí. Esta hoja de trucos de Java es completamente gratuita, sin necesidad de registrarse. Guárdala en favoritos y vuelve cuando necesites consultar la sintaxis, una colección o una operación de stream.
¿Cuál es la diferencia entre == y .equals() en Java?
Para objetos, == compara referencias (si dos variables apuntan exactamente al mismo objeto), mientras que .equals() compara el contenido. Dos objetos String distintos con el mismo texto son .equals() pero pueden no ser ==. Usa siempre .equals() para comparar cadenas y otros objetos por igualdad de valor; usa == solo para primitivos (int, boolean, etc.) o para comprobar si es null.
¿Para qué se usan los streams en Java?
La API de Streams (Java 8+) te permite procesar colecciones con un pipeline legible de operaciones (filter, map, sorted, reduce, collect) en lugar de bucles manuales. Empiezas con list.stream(), encadenas operaciones intermedias y terminas con una operación terminal como collect(Collectors.toList()) o forEach. Mantiene el código de transformación de datos conciso y expresivo.
¿Puedo practicar Java en línea?
Sí. Abre el playground de Java para compilar y ejecutar cualquier fragmento de esta hoja de trucos en tu navegador, sin instalar ningún JDK. Cuando quieras estructura, el curso interactivo y gratuito de Java de Coddy te lleva paso a paso desde las variables y los bucles hasta las clases, las colecciones y los streams.
¿Esta hoja de trucos es buena para principiantes?
Sí. Está organizada desde los componentes básicos más comunes (tipos, control de flujo, métodos) hasta los avanzados (streams, genéricos, excepciones), de modo que puedes usar las secciones de arriba desde el primer día e ir avanzando hacia el resto.
Coddy programming languages illustration

Aprende Java con Coddy

COMENZAR