Wenas de nuevo aca en "El lado oscuro de java" en el dia hoy voy a detallar algunas de las mejoras en JAVA 7.
Soporte a lenguajes dinámicos
Java es un lenguaje fuertemente tipado, mas no tanto a nivel de bytecode, pero esto es un problema para lenguajes dinámicos como Groovy o Jython, que trabajan sobre la JVM. Para mejorar la integración se introducirá, además de varias clases nuevas, un nuevo bytecode, simplificando la implementación de compiladores dinámicos con una mejor performance.
Strings en switch
Por el momento, en un switch sólo podemos pasar como parámetros tipos de datos byte, short, char, int y enum, pero finalmente podrá aceptar Strings, por lo que será posible hacer
switch (myString) { case "uno": ; break; case "dos": ; break; default: ; }
Collections y Generics
Hasta ahora, cuando teníamos que instancias una collection, debíamos duplicar el tipo de parámetros
Map anagrams = new HashMap();
Pero a partir de ahora, el segundo será inferido:
Map anagrams = new HashMap<();
Además, podrán ser inicializados como los arrays:
List numbers = ["uno", "dos", "tres", "cuatro", "cinco"];
Manejo automático de recursos “#x0d;”
Mediante una mejora en el try, podemos declarar directamente recursos que deban ser cerrados al terminar la ejecución, ahorrándonos tener que cerrarlos manualmente. Lo que hasta ahora es:
try { BufferedReader br = new BufferedReader(new FileReader(path)); return br.readLine();#x0d; } finally { br.close();#x0d; }
Directamente será:
static String readFromFile (String file) throws IOException { try (BufferedReader reader = new BufferedReader(new FileReader(file)) { return reader.readLine(); } }
Binarios literales
Con el prefijo 0b podremos directamente representar literales binarios de enteros
int binario = 0b10100010;
Modularización del JDK
A medida que fueron agregando funcionalidades, características, entornos, etc., indudablemente se ha hecho más pesado, tanto en tamaño de descarga, tiempo de carga al inicio y consumo de memoria. El proyecto Jigsaw viene a remediar esta situación, intentando implementar un JDK modular gracias al cual los usuarios podríamos descargar y cargar algunos sólo algunos componentes del JDK que requerramos para correr y desarrollar una determinada aplicación.
Nueva API de I/O
El manejo de I/O será una de las áreas que más cambiará con la séptima versión de Java. Por un lado, se añaden excepciones al manejo de archivos y se mejora el soporte a operaciones como copiado y borrado, permisos, monitoreo de modificaciones, etc. También crearon una interface NetworkChannel que define métodos bind(), getLocalAddress(), getOption() y setOption(). Finalmente, se permitirá que los threads continúen su trabajo paralelamente al trabajo de I/O y sean notificados cuando las operaciones sobre archivos o red terminen de ejecutarse, con canales asíncronos.
Estos son algunos de los cambios, obviamente hay más. Hay varios sencillos que serán muy bienvenidos por el tiempo que ahorrarán al escribir código y otros, como la modularización, los cambios en manejo de archivos, que parecen más importantes. Si bien el JDK 7 será lanzado o a fines del 2010 o a principios del 2011, los que quieran tener un anticipo de los cambios pueden chequear las versiones de prueba de tanto el JDK de Sun Oracle como el desarrollado por IBM (disponible sólamente para Linux y previo registro gratuito).
INFO URL INGLES ORACLE
Fuente
Soporte a lenguajes dinámicos
Java es un lenguaje fuertemente tipado, mas no tanto a nivel de bytecode, pero esto es un problema para lenguajes dinámicos como Groovy o Jython, que trabajan sobre la JVM. Para mejorar la integración se introducirá, además de varias clases nuevas, un nuevo bytecode, simplificando la implementación de compiladores dinámicos con una mejor performance.
Strings en switch
Por el momento, en un switch sólo podemos pasar como parámetros tipos de datos byte, short, char, int y enum, pero finalmente podrá aceptar Strings, por lo que será posible hacer
switch (myString) { case "uno": ; break; case "dos": ; break; default: ; }
Collections y Generics
Hasta ahora, cuando teníamos que instancias una collection, debíamos duplicar el tipo de parámetros
Map anagrams = new HashMap();
Pero a partir de ahora, el segundo será inferido:
Map anagrams = new HashMap<();
Además, podrán ser inicializados como los arrays:
List numbers = ["uno", "dos", "tres", "cuatro", "cinco"];
Manejo automático de recursos “#x0d;”
Mediante una mejora en el try, podemos declarar directamente recursos que deban ser cerrados al terminar la ejecución, ahorrándonos tener que cerrarlos manualmente. Lo que hasta ahora es:
try { BufferedReader br = new BufferedReader(new FileReader(path)); return br.readLine();#x0d; } finally { br.close();#x0d; }
Directamente será:
static String readFromFile (String file) throws IOException { try (BufferedReader reader = new BufferedReader(new FileReader(file)) { return reader.readLine(); } }
Binarios literales
Con el prefijo 0b podremos directamente representar literales binarios de enteros
int binario = 0b10100010;
Modularización del JDK
A medida que fueron agregando funcionalidades, características, entornos, etc., indudablemente se ha hecho más pesado, tanto en tamaño de descarga, tiempo de carga al inicio y consumo de memoria. El proyecto Jigsaw viene a remediar esta situación, intentando implementar un JDK modular gracias al cual los usuarios podríamos descargar y cargar algunos sólo algunos componentes del JDK que requerramos para correr y desarrollar una determinada aplicación.
Nueva API de I/O
El manejo de I/O será una de las áreas que más cambiará con la séptima versión de Java. Por un lado, se añaden excepciones al manejo de archivos y se mejora el soporte a operaciones como copiado y borrado, permisos, monitoreo de modificaciones, etc. También crearon una interface NetworkChannel que define métodos bind(), getLocalAddress(), getOption() y setOption(). Finalmente, se permitirá que los threads continúen su trabajo paralelamente al trabajo de I/O y sean notificados cuando las operaciones sobre archivos o red terminen de ejecutarse, con canales asíncronos.
Estos son algunos de los cambios, obviamente hay más. Hay varios sencillos que serán muy bienvenidos por el tiempo que ahorrarán al escribir código y otros, como la modularización, los cambios en manejo de archivos, que parecen más importantes. Si bien el JDK 7 será lanzado o a fines del 2010 o a principios del 2011, los que quieran tener un anticipo de los cambios pueden chequear las versiones de prueba de tanto el JDK de Sun Oracle como el desarrollado por IBM (disponible sólamente para Linux y previo registro gratuito).
INFO URL INGLES ORACLE
Fuente
Actualizaciones en Java 7 - Mejoras en java 7 - Nueva version de Java 7
Reviewed by El lado oscuro de java
on
marzo 30, 2012
Rating:
No hay comentarios: