Biblioteca Estándar de Java (Java Standard Edition): visión general completa
La Biblioteca Estándar de Java (Java Standard Edition — Java SE) es un conjunto fundamental de paquetes, clases e interfaces que se incluye con cada JDK (Java Development Kit). A diferencia de los frameworks de terceros, la biblioteca estándar no requiere la instalación de dependencias adicionales; está disponible "de fábrica". Es precisamente esto lo que hace de Java un lenguaje tan potente y portátil, proporcionando al desarrollador soluciones listas para la mayoría de las tareas cotidianas: desde el trabajo con cadenas hasta la concurrencia y la comunicación en red.
En esta visión general, analizaremos los paquetes clave de la biblioteca estándar, mostraremos ejemplos prácticos de código y explicaremos cómo se aplican estas herramientas en el desarrollo real.
1. Paquete java.lang — la base fundamental
El paquete java.lang se importa automáticamente en cualquier programa Java. Contiene clases sin las cuales es imposible imaginar ninguna aplicación.
- Object — la clase raíz para todos los objetos. Métodos
equals(),hashCode(),toString(). - String, StringBuilder, StringBuffer — trabajo con cadenas inmutables y mutables.
- Math — funciones matemáticas (
Math.sqrt(),Math.random()). - System — entrada/salida por consola, gestión de propiedades del sistema.
- Thread y Runnable — herramientas básicas de concurrencia.
public class LangExample { public static void main(String[] args) { // Trabajo con cadenas String text = "¡Hola, Java!"; System.out.println(text.length()); // 12
// Matemáticas double sqrt = Math.sqrt(144); System.out.println(sqrt); // 12.0
// Clase Object Object obj = new Object(); System.out.println(obj.hashCode()); }}2. Paquete java.util — colecciones y utilidades
Este es el paquete más extenso. Incluye el Collections Framework, trabajo con fechas, números aleatorios y mucho más.
Colecciones (Collections Framework)
- List (ArrayList, LinkedList) — listas ordenadas con duplicados.
- Set (HashSet, TreeSet) — conjuntos sin repeticiones.
- Map (HashMap, TreeMap) — diccionarios "clave-valor".
- Queue (PriorityQueue) — colas.
import java.util.*;
public class UtilExample { public static void main(String[] args) { // ArrayList List<String> list = new ArrayList<>(); list.add("Java"); list.add("Python"); list.add("Java"); System.out.println(list); // [Java, Python, Java]
// HashSet (elementos únicos) Set<String> set = new HashSet<>(list); System.out.println(set); // [Java, Python]
// HashMap Map<String, Integer> map = new HashMap<>(); map.put("Manzana", 10); map.put("Pera", 5); System.out.println(map.get("Manzana")); // 10 }}Utilidades
- Collections — métodos estáticos para ordenación, búsqueda, sincronización.
- Arrays — trabajo con arrays.
- Random — generación de números pseudoaleatorios.
3. Paquete java.io — entrada/salida clásica
Paquete para trabajar con flujos de datos (Streams). Se utiliza para leer y escribir archivos, trabajar con la consola y flujos de red.
- InputStream/OutputStream — flujos de bytes.
- Reader/Writer — flujos de caracteres.
- File