miércoles, 25 de octubre de 2017

Novedades en Java SE 7


Ya en su día hicimos un post sobre las novedades de Java SE 6. Pues la idea es seguir con más de lo mismo. Novedades hay un montón y puedes verlas aquí, pero repasaremos las más interesantes.
  • Podemos usar switch con los String
switch (dayOfWeekArg) {
  case "Monday":
      typeOfDay = "Start of work week";
      break;
  case "Sunday":
      typeOfDay = "Weekend";
      break;
}
  • Mejora en el uso de las colecciones. Ya no se hace falta indicar el tipo de la objeto incluido en la misma en la implementación, basta con ponerlo en la interfaz. 
Map<String, List<String>> myMap = new HashMap<>();
  • Gestión automática de recursos. A través de los try/catch podremos dejar que la VM sea quien se encargue por nosotros de cerrar los recursos que habramos. 
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
   return br.readLine();
}
  • Captura de excepciones multiples 
catch (IOException|SQLException ex) {
    logger.log(ex);
    throw ex;
}
  • Posibilidad de usar numéricos con 'underscore' y números binarios
long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 	3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;
  • Anotación '@SafeVarargs' para evitar warnings y asegurando a la maquina virtual un entorno de seguridad para el uso de las varargs.
@SafeVarargs
final void foo(T... args) {
    for (T x : args) {
        // do stuff with x
    }
}

Aparte de esto que es algo más 'tangible' se ha añadido:
  • Creación del paquete NIO.2. Que aumentará el soporte y manejo de ficheros e incluye nuevas clases e interfaces.
  • Creación del paquete invoke. El cual permite un mejor manejo de lenguajes como Python o Ruby.
  • Nueva versión de JDBC 4.1
  • Mejoras en el core como: Mejora en la API ClassLoader, un método para poder cerrar URLClassLoader.
  • Mejoras en la internacionalización: Actualización a Unicode 6.0, actualización de java.util.Locale.
  • Mejoras en la API Swing. 
  • Mejora de las API de manejo XML a sus versiones estables más nuevas: JAXP 1.4, JAXB 2.2a y JAX-WS 2.2

No hay comentarios:

Publicar un comentario