CodeGym
AI Academy
CodeGym University
Aprendizaje
Cursos
Tareas
Encuestas & Cuestionarios
Juegos
Ayuda
Horario
Comunidad
Usuarios
Foro
Chat
Artículos
Historias de éxito
Actividad
Reseñas
Suscripciones
Tema claro

Lecciones

  • Reseñas
  • Sobre nosotros
Comenzar
Comenzar a aprender
Comienza a aprender ahora
  • Mi progreso
  • Cursos
  • Universidad
  • Mapa de misiones
  • Lecciones
  • Problemas de rendimiento de IO: cuellos de botella

    JAVA 25 SELF
    Nivel 41,Lección 0
    Esta lección trata de qué es un «cuello de botella» en la entrada/salida y cómo detectarlo y eliminarlo. Veremos por qué las operaciones de disco y red son significativamente más lentas que la RAM, qué antipatrones son frecuentes (lectura byte a byte con read(), registros síncronos y otros), cómo ayudan los búferes ( BufferedInputStream, BufferedReader), los perfiladores ( VisualVM, JProfiler) y las mediciones de tiempo con System. currentTimeMillis (). Realizaremos un experimento práctico leyendo el archivo "bigfile.txt", compararemos la velocidad con y sin búfer, veremos la influencia de SSD/HDD y de la red y enumeraremos errores típicos.
    Disponible
  • Canales NIO y ByteBuffer

    JAVA 25 SELF
    Nivel 41,Lección 1
    Introducción práctica a la E/S no bloqueante de Java NIO: vemos en qué se diferencian los canales Channel y los búferes ByteBuffer de los flujos InputStream/ OutputStream, cómo leer y escribir con FileChannel, posicionarse mediante position()/ truncate(), trabajar con los parámetros del búfer ( capacity, limit, position, mark) y elegir entre allocate() y allocateDirect(). Se muestran operaciones zero-copy transferTo()/ transferFrom() y errores típicos como olvidarse de flip() y usar un modo de búfer incorrecto.
    Disponible
  • Archivos grandes: patrones de chunking

    JAVA 25 SELF
    Nivel 41,Lección 2
    Cómo procesar de forma eficiente archivos de decenas de gigabytes sin OutOfMemoryError: los dividimos en fragmentos (chunks), leemos por posiciones mediante RandomAccessFile y FileChannel, paralelizamos las tareas con ExecutorService/ ForkJoinPool, y para una copia sencilla usamos zero-copy a través de transferTo/ transferFrom. Analizamos la elección del tamaño del fragmento, los límites de línea, la sincronización de resultados y los errores típicos.
    Disponible
  • Trabajo con archivos grandes: chunking, memory mapping

    JAVA 25 SELF
    Nivel 41,Lección 3
    Cómo procesar de forma segura y rápida archivos enormes en Java: leer por partes (chunking) mediante flujos y búferes, ajustar el tamaño del búfer para el rendimiento, usar el mapeo del archivo en memoria mediante MappedByteBuffer y FileChannel para acceso aleatorio ultrarrápido. Veremos pros y contras del memory mapping, recomendaciones sobre recursos y paralelismo, así como errores típicos (por ejemplo, OutOfMemoryError, descriptores olvidados, superposición de chunks en búsquedas).
    Disponible
  • Archivos/compresión: java.util.zip

    JAVA 25 SELF
    Nivel 41,Lección 4
    Lección práctica sobre trabajo con archivos y compresión en Java: conocemos el paquete java.util.zip, los flujos ZipInputStream/ ZipOutputStream y la clase de acceso aleatorio ZipFile; gestionamos los niveles de compresión mediante Deflater ( 0… 9, DEFAULT_COMPRESSION); trabajamos con GZIPInputStream/ GZIPOutputStream para archivos individuales; y comprimimos/descomprimimos directorios con Files.walk y filtrado por PathMatcher ( "glob:**/*.txt"). Hablaremos de seguridad: protección frente a Zip Slip mediante normalización de la ruta y control de volumen frente a zip bomb, y además construiremos un mini CLI «zip/unzip» con máscaras.
    Disponible
Aprender
  • Registro
  • Curso de Java
  • Ayuda con tareas
  • Precios
  • Proyectos de juegos
  • Sintaxis de Java
Comunidad
  • Usuarios
  • Artículos
  • Foro
  • Chat
  • Historias de éxito
  • Actividad
  • Programa de afiliados
Empresa
  • Acerca de nosotros
  • Contactos
  • Reseñas
  • Sala de prensa
  • CodeGym para EDU
  • Preguntas frecuentes
  • Soporte
CodeGymCodeGym es un curso en línea para aprender programación Java desde cero. Este curso es una forma perfecta de dominar Java para principiantes. Contiene más de 1.200 tareas con verificación instantánea y un conjunto esencial de teoría sobre los fundamentos de Java. Para ayudarte a tener éxito en la formación, hemos implementado una serie de funciones motivacionales: cuestionarios, proyectos de programación, contenido sobre aprendizaje eficiente y contenidos sobre la carrera profesional de un desarrollador Java.
Síguenos
Idioma de la interfaz
English Deutsch
Español
हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Los programadores se hacen, no nacen" © 2026 CodeGym
MastercardVisa
"Los programadores se hacen, no nacen" © 2026 CodeGym