Mejora en el manejo de recursos con Java 7
2Java 7 añade nuevas características bastante interesantes como son mejoras en la JVM, posibilidad del uso de String en los switch, formatos binarios de números… Entre estas nuevas características se encuentra la sentencia try-with-resources o ARM (Automatic Resource Management). Hasta ahora el manejo de los recursos, como ficheros, sockets, streams o conexiones a base de datos, debía ser realizado por el los programador, con los posibles errores que ésto puede originar. Con esta nueva sentencia, la JVM es la encargada de manejar todos los recursos que sean declarados dentro de la sentencia try-with-resources.
Antes de Java 7
Antes de Java 7 los recursos se solían manejar dentro de un bloque try-catch-finally, de forma que dentro del bloque try se utilizaban los recursos y en el bloque finally se cerraban todos los recursos abiertos. Ésto podía causar problemas de memoria y de rendimiento cuando se olvidaba cerrar estos recursos. Un ejemplo de esta forma de manejar los recursos sería:
Continue reading “Mejora en el manejo de recursos con Java 7” »
HTML5 – Elemento P
3El elemento p es un viejo conocido de versiones anteriores de HTML, probablemente es uno de los elementos más comúnmente utilizados. Representa un párrafo, el cual consiste en un bloque de texto que esta separado por lineas en blanco. Muchos navegadores muestran los párrafos con una linea en blanco entre ellos.
Del W3C obtenemos este simple ejemplo de utilización de un párrafo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<p> The little kitten gently seated himself on a piece of carpet. Later in his life, this would be referred to as the time the cat sat on the mat.</p> <fieldset> <legend> Personal information </legend> <p> <label> Name: <input name="n"> </label> <label> <input name="anon" type="checkbox"> Hide from other users </label> </p> <p> <label> Address: <textarea name="a"></textarea> </label> </p> </fieldset> <p> There was once an example from Femley,<br> Whose markup was of dubious quality.<br> The validator complained,<br> So the author was pained,<br> To move the error from the markup to the rhyming. </p> |
Scala – Diferencia entre VAR y VAL
1Scala permite crear variables mutables(se pueden leer y reescribir) e inmutables(sólo se pueden leer). La variables inmutables se comportan como constantes, únicamente pueden ser inicializadas una vez y su valor no se puede modificar, de manera que si se intenta asignarle un nuevo valor se produce un error de compilación. Estas variables se declaran con el modificador val.
|
1 2 3 |
val horas = 24 //> horas : Int = 24 horas = 23 //> error: reassignment to val |
Inyección de dependencias. ¿Qué es y para qué sirve?
1La inyección de dependencias (DI) es un patrón de diseño que deriva de un patrón más genérico llamado Inversión de Control. DI hace uso de la modularidad y la reutilización, las cuales siempre deberíamos tener en cuenta si nuestra aplicación va a estar dotada de mayor funcionalidad. Más adelante, veremos en que consiste la Inversión de Control, pero hoy vamos a centrarnos en la DI, visto además de una manera simplista, con un ejemplo sencillo.
Continue reading “Inyección de dependencias. ¿Qué es y para qué sirve?” »
Introducción a TDD
1Dentro del mundo de las metodologías ágiles tenemos varias especialidades. Una de ellas se denomina Extreme Programming, que engloba varias técnicas, siendo una de ellas Test Driven Development, TDD para los amigos. ¿En qué consiste TDD? Muy sencillo. Antes de programar una funcionalidad vamos a escribir un test unitario que pruebe esa funcionalidad que aún no está desarrollada. Recuerdo la primera vez que alguien me habló de TDD. Pensé que estaba totalmente loco. ¿Cómo voy a escribir un test sobre algo que aún no he desarrollado? ¿Cómo voy a probar algo que no existe? Ahora me doy cuenta de que en ese momento, como es normal, no entendía para qué sirve TDD. El objetivo es escribir mi funcionalidad basándome en un ejemplo (con cierta entrada espero cierta salida) y, además, construirla poco a poco, lo que se denominan baby steps.
String Constant Pool
1Los tipos de datos String son algo muy común en los desarrollos de aplicaciones, y para poder optimizar la memoria, la máquina virtual de Java reserva un área especial de la memoria donde guarda las referencias a los objetos de tipo String, denominada “String Constant Pool”.
¿Cómo Funciona?
Se trata de una zona de memoria donde se almacenan las referencias a los objetos String. De esta manera, cada vez que se crea un String, la máquina virtual de Java primero comprueba si la cadena se encuentra en el String Constant Pool, si la cadena ya existe devuelve la referencia a la cadena existente, y si la cadena no existe se crea un nuevo objeto String, cuya referencia es colocada en la String Constant Pool.
Gracias a la Pool se evita tener en memoria muchos objetos de tipo String con el mismo contenido. Además,los objetos String apuntados de la String Constant Pool nunca son elegibles por el recolector de basuras, ya que la referencia a estos objetos siempre esta en uso. Gracias a estas dos características se consigo optimizar el rendimiento de las aplicaciones y el uso de memoria.
