Archive | Java SE RSS feed for this section

javaherenciacuriosidades

Java Herencia y sus limitaciones

Hablar de Java Herencia y sus limitaciones es muy común cuando nos disponemos a preparar una certificación de Java como la de programador. La mayor parte de los desarrolladores piensa que cuando heredamos o extendemos de una clase se hereda todo.   Sin embargo esto no es así , existen una serie de limitaciones. Vamos a […]

javaStreamStringMini

Java Stream String y Java 8

El uso de Java Stream String es muy común cuando utilizamos Java 8. La realidad es que en muchos casos necesitamos transformar una cadena de texto en otra cosa y que mejor que usar los Streams y la programación funcional para hacerlo. Así que todos nosotros rápidamente vamos a revisar el API de Java y […]

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 […]

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 […]

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 […]

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 […]

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 . ¿ […]

javacommandPatternTareasvarias

Command Pattern en Java y la gestion de tareas

El concepto de Command Pattern o patron comando es uno de los más conocidos en el mundo de la programación. ¿Para qué sirve el patrón comando y que situaciones resuelve?. En programación nos podemos encontrar en muchas situaciones en las que tenemos que gestionar tareas que reciben algún tipo de objeto como parámetro. Una vez recibido […]

JavaMultipleInheritanceDefault

Java Multiple Inheritance con default methods

El soporte de Java Multiple Inheritance ha sido siempre una de las características que mas se echaban en falta en Java. La razón que siempre se ha esgrimido es que la herencia múltiple es algo que complica el código y la vida al desarrollador. Sin embargo hay que reconocer que en más de una ocasión […]

EclipsePullup

Eclipse Pull up , Pull down y refactorings

Eclipse pull up es uno de los refactorings más habituales de Eclipse cuando estamos trabajando con jerarquías de clases. ¿Para qué sirve este refactoring y su complementario pull down? . Sirven para  mover métodos entre diferentes niveles de una  jerarquía de clases . Supongamos que disponemos de tres clases (Persona , Empleado y Deportista) y […]

javalambdainferredtypes

Lambda inferred type y sus ventajas

El uso de Java lambda inferred type es muy común cuando trabajamos con expresiones lambda pero a veces es difícil entender como funcionan. Vamos a construir unos ejemplos que nos ayuden a clarificar el concepto. Para ello vamos a partir de un interface Calculadora que define el concepto de operación para luego apoyarnos en expresiones […]