cursosdejavaoo

Mis Cursos de Java para desarrolladores

Hoy publico mis cursos de Java para desarrolladores. Estos se componen de un curso Java de programación orientada a objeto, un curso de manejo de apis y un curso de aplicaciones web. Hace ya tiempo que varias personas me comentaron que debería grabar algunos cursos que cubrieran las tecnologías fundamentales de la plataforma.   Java […]

EJBEventListeners

El concepto de EJB Event y como desacoplar servicios

El concepto de EJB Event pertenece a Java EE 6 . A partir de esta versión de la plataforma tenemos la posibilidad de generar eventos a nivel de EJBs. Esto es algo que en un principio parece extraño ya que estamos más acostumbrados a la gestión de eventos en el mundo de JavaScript y la […]

javaobjectsizediagram

Java Object Size y JVM OverHead

Hacerse la pregunta sobre Java Object Size o cuanto ocupa un objeto en Java en memoria es bastante común. En muchas ocasiones nos encontramos desarrollando aplicaciones que instancia muchos objetos. En este tipo de situaciones no es infrecuente tener problemas de gestión de memoria.La primera pregunta que nos viene a la cabeza es ¿Cuanto ocupan […]

jpalazyfechingProxiesSQL

JPA Lazy fetching proxies y rendimiento

El concepto de JPA Lazy Fetching siempre cuesta un poco entenderlo y es uno de los conceptos fundamentales de Java Persistence API .¿Cómo funciona exactamente? Vamos a explicarlo a detalle.  Lo primero que tenemos que entender es que cuando trabajamos con JPA , definimos un modelo de dominio que relaciona las diferentes clases entre ellas. […]

jpaDTOGrafo

JPA DTO (Data Transfer Object) y JPQL

El uso de JPA DTO es algo bastante común cuando trabajamos con JPA. Recordemos que habitualmente cuando realizamos una consulta con Java Persistence API el resultado es un grafo de objetos. En muchos casos esto nos es suficiente , pero hay algunas ocaciones en las que nos puede ser mucho más útil devolver un DTO […]

javastreampeekfuncionamiento

Java Stream peek funcionamiento y logging

A veces usar Java Stream peek , es clave para entender cual es el funcionamiento de un flujo de Stream a nivel de Java 8 . Recordemos que los Streams nos permiten realizar operaciones complejas sobre un conjunto de datos . En ocasiones si el flujo de operaciones es elaborado cuesta entender realmente lo  que […]

javahashcodelista

Java override HashCode y curiosidades

El concepto de  Java override hashcode  es una de las preguntas clásicas de los exámenes de certificación de Java Programmer. ¿Cómo funcionan los hashcodes y para que sirven?. Los Java HashCode se encargan de generar un hash para cada uno de nuestros objetos. Vamos a ver un ejemplo sencillo: En este caso hemos generado los […]

jpaCriteriaParametros

JPA Criteria API , un enfoque diferente

El uso de JPA Criteria nos aporta muchas ventajas en cuanto a la construcción de SQL Dinámico utilizando JPA . Ahora bien su su sintaxis y su forma de trabajar son bastante diferentes a la forma clásica. Vamos a apoyarnos en el ejemplo anterior de JPA SQL Injection para construir el mismo ejemplo utilizando JPA Criteria […]

jpaSQLInjectioninfectado

JPA SQL Injection y sus problemas

JPA SQL Injection es un problema del que muchos desarrolladores se olvidan ,ya que consideran que JPA esta totalmente protegido contra inyeccion de SQL. ¿Es esto cierto o podemos vernos afectados?. La realidad es que no estamos totalmente protegidos . Depende mucho de como se haya construido el código . Vamos a ver un ejemplo sencillo […]

java8FactoryPatternLambda

Java 8 Factory Pattern y su implementación

El concepto de Java 8 Factory Pattern es cada día más utilizado ya que nos permite simplificar la implementación del clásico patrón factoría utilizando Java 8 y reduciendo el número de clases. Vamos a ver como implementarlo, para ello partiremos de un ejemplo clásico de gestión de Facturas y calculo de IVAs y lo evolucionaremos […]

javascriptdeferredresolve

JavaScript Deferred Objects y peticiones asíncronas

El concepto de JavaScript Deferred Objects siempre es difícil de entender en un primer momento. Sin embargo es algo que tenemos que conocer ya que sino nuestro código será mucho menos reutilizable. Vamos a explicar este concepto tan interesante a través de un grupo de ejemplos. Peticiones Ajax Supongamos que tenemos dos urls en nuestro […]

javastreamforeachoverload

Java Stream forEach y colecciones

El uso de Java Stream forEach poco a poco se va haciendo hueco entre los desarrolladores que utilizan programación funcional. El problema fundamentalmente que existe con el método forEach es que estamos muy acostumbrados a usar un bucle clásico forEach y nos funciona bastante bien .Así que da un poco de pereza cambiarlo . ¿ […]