Bueno ya hicimos en su día los post sobre las características de Java 8 y 9 y ahora vamos por la 10 y 11. La versión 10 fue la última lanzada por Oracle con caracter gratuito. Y la 11 fue la siguiente LTS después de Java 8 y la primera con el nuevo modelo de sistema de licenciamiento. Y de lanzamiento, sacando una nueva versión cada 6 meses. Debido a eso, la versión 10 fue lanzada en Marzo de 2018 y la 11 en Septiembre del mismo año.
En este post haremos un listado centrado principalmente en las mejoras para desarrolladores. Con la idea de seguir poniéndonos un poco al día y al menos saber manejar las nuevas y más importantes características. Por lo que no entraremos al detalle de mejoras a nivel de rendimiento u otras características menos llamativas.
- Java 10: Tipo variable local
var s = "this is a String object";
//cannot infer type for local variable var a; var b = null; var c = () -> { }; var d = { 1 , 2 };
- Java 10: Métodos inmutables
List<String> numbers = new ArrayList<>(); numbers.add("one"); List<String> copy = List.copyOf(numbers); numbers.add("two"); //copy.add("three"); // throw java.lang.UnsupportedOperationException copy.forEach(System.out::println); //only prints one List<String> collect = numbers.stream().collect(Collectors.toUnmodifiableList()); collect.forEach(System.out::println); // prints one two //collect.add("three");// throw java.lang.UnsupportedOperationException
- Java 10: Nuevo método de Optional
String str = "str"; Optional<String> opt = Optional.ofNullable(str); System.out.println(opt.orElseThrow()); // same as opt.get()
- Java 10: Certificados por defecto
- Java 10: Nuevo versionado de los release en base al Tiempo
$ java -version java version "10" 2018-03-20 Java(TM) SE Runtime Environment 18.3 (build 10+46) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
- Java 11: Nuevos métodos de String
System.out.println(" ".isBlank()); //true String lines = "one\nsecond\nthird"; System.out.println(lines.lines().collect(Collectors.toList())); //[one, second, third] String str = " str "; System.out.println("-"+str.strip()+"-"); // print -str- System.out.println("-"+str.stripLeading()+"-"); // print -str - System.out.println("-"+str.stripTrailing()+"-"); // print - str- System.out.println("2".repeat(2)); //22
- Java 11: Var en expresiones Lambdas
Map<String, Integer> map = new HashMap<>(); map.put("2", 2); map.forEach((final var x, final var y) -> System.out.println(x+y)); // prints 22
- Java 11: Facilitar la lectura y escritura de String en ficheros
Path filePath = Files.writeString(Paths.get("tmp.txt"), "Sample text"); String fileContent = Files.readString(filePath); System.out.println(fileContent.equals("Sample text")); // prints true
- Miembros anidados
- Java 11: Estandarización de HTTPClient
- Java 11: Compilar y ejecutar clases con un único comando
java HelloWorld.java
- Java 11: Eliminación de módulos de Java EE y CORBA
No hay comentarios:
Publicar un comentario