Blog

Cómo manejar fugas de memoria en aplicaciones Java

Cómo Manejar Fugas de Memoria en Aplicaciones Java 1. Introducción Uno de los beneficios fundamentales de Java es la gestión automática de memoria con la ayuda del recolector de basura integrado (o GC por sus siglas en inglés). El GC se encarga de forma implícita de asignar y liberar memoria, y así maneja la mayoría […]

Limitar Resultados de Consultas con JPA y Spring Data JPA

1. Introducción En este tutorial, vamos a aprender sobre cómo limitar los resultados de las consultas utilizando la JPA y Spring Data JPA. Primero, examinaremos la tabla que queremos consultar, así como la consulta SQL que queremos reproducir. Luego, nos adentraremos en cómo lograr esto con JPA y Spring Data JPA. ¡Vamos a empezar! 2. […]

Diferencias entre Java Keystore y Truststore

Diferencias entre un Java Keystore y un Java Truststore En este tutorial rápido, proporcionaremos una visión general de las diferencias entre un Java keystore y un Java truststore. Conceptos En la mayoría de los casos, utilizamos un keystore y un truststore cuando nuestra aplicación necesita comunicarse a través de SSL/TLS. Normalmente, estos son archivos protegidos […]

Cómo Crear Consultas Like en Spring JPA

Introducción En esta entrada, vamos a cubrir diferentes formas de crear consultas LIKE en los Repositorios de Spring JPA. Dedicaremos especial atención a las diversas palabras clave que podemos utilizar al crear métodos de consulta. A su vez, exploraremos la anotación @Query con parámetros nombrados y ordenados, lo que nos permitirá realizar consultas más complejas […]

Métodos Efectivos para Iterar Listas en Java

1. Introducción Iterar sobre los elementos de una lista es una de las tareas más comunes en un programa. En este tutorial, revisaremos las diferentes formas de hacer esto en Java. Nos enfocaremos en iterar a través de la lista en orden, aunque ir en orden inverso también es sencillo. A continuación, exploraremos varios métodos […]

Comparativa de HashMap y TreeMap en Java

Comparativa Entre HashMap y TreeMap en Java: ¿Cuál Elegir para Tu Proyecto? 1. Introducción En este artículo, vamos a comparar dos implementaciones de Map: TreeMap y HashMap. Ambas implementaciones forman una parte integral del marco de colecciones de Java y almacenan datos en pares de clave-valor. Entender las diferencias y similitudes entre estas dos estructuras […]

Cómo Probar Streams Reactivos en Java con StepVerifier y TestPublisher

Cómo Probar Streams Reactivos en Java con StepVerifier y TestPublisher Introducción En este tutorial, analizaremos a fondo cómo probar streams reactivos en Java utilizando StepVerifier y TestPublisher. Nos basaremos en una aplicación de Spring Reactor que contiene una cadena de operaciones reactiva. Nuestro objetivo es enseñarte a probar eficazmente los distintos escenarios que puedes encontrar […]

Diferencias entre Copia Superficial y Profunda en Java

Shallow Copy vs Deep Copy en Java: Diferencias y Métodos de Implementación 1. Introducción Cuando queremos copiar un objeto en Java, debemos considerar dos posibilidades: una copia superficial (shallow copy) y una copia profunda (deep copy). En el enfoque de la copia superficial, solo copiamos los valores de los campos, por lo que la copia […]

Cómo probar excepciones en Java con JUnit

1. Introducción En este tutorial rápido, vamos a explorar cómo probar si se lanza una excepción y cómo comprobar si no se lanza ninguna excepción utilizando la biblioteca JUnit. Cubriremos tanto las versiones de JUnit 4 como JUnit 5, lo que proporciona un marco completo para el manejo de excepciones en pruebas unitarias. Además, aprenderemos […]

Cómo medir el tiempo transcurrido en Java

Introducción En este artículo, vamos a analizar cómo medir el tiempo transcurrido en Java. Aunque esto puede parecer sencillo, hay algunas trampas que debemos tener en cuenta. Exploraremos las clases estándar de Java y los paquetes externos que ofrecen funcionalidad para medir el tiempo transcurrido. A través de ejemplos prácticos y explicaciones claras, te ayudaremos […]