Cada 6 meses, Oracle lanza nuevas versiones de Java. La versión de septiembre de Java 11 ya está generando mucho revuelo en el mundo de la informática, incluso antes de su lanzamiento, al declarar que, a partir de ahora, Java se pagará para uso comercial. Los siguientes artículos mostrarán funciones importantes, mejoras y funciones obsoletas sobre JDK 11.
Información y cambios importantes
- La pila de implementación requerida para ejecutar applets y aplicaciones web se eliminó de JDK, que quedó en desuso en JDK 9.
- Se eliminó una sección completa de navegadores admitidos de la lista de configuraciones admitidas debido a la falta de disponibilidad de la pila de implementación.
- La actualización automática se eliminó de las instalaciones de JRE en Windows y macOS.
- JavaFX y Java Mission Control ya están disponibles como descarga independiente.
- Ya no se proporciona la traducción del idioma Java para francés, alemán, italiano, coreano, portugués (brasileño), español y sueco.
- En esta versión, ya no se ofrece JRE o Server JRE. Solo se ofrece JDK.
- El formato de empaquetado actualizado para Windows ha cambiado de tar.gz a .zip
- El formato de paquete actualizado para macOS ha cambiado de .app a .dmg
1. Nuevos métodos de string:
isBlank(): Este es un método booleano. Simplemente devuelve verdadero cuando una string está vacía y viceversa.
Java
// Java Program to demonstrate // the working of isBlank() method class GFG { public static void main(String args[]) { String str1 = ""; System.out.println(str1.isBlank()); String str2 = "GeeksForGeeks"; System.out.println(str2.isBlank()); } }
true false
líneas(): este método es para devolver una colección de strings que están divididas por terminadores de línea.
Java
// Java Program to demonstrate // the working of lines() method import java.util.*; class GFG { public static void main(String args[]) { String str = "Geeks\nFor\nGeeks"; System.out.println( str.lines().collect(Collectors.toList())); } }
Producción
Geeks For Geeks
repetir (n): el resultado es la string concatenada de la string original repetida la cantidad de veces en el argumento.
Java
// Java Program to demonstrate // the working of repeat() method class GFG { public static void main(String args[]) { String str = "GeeksForGeeks"; System.out.println(str.repeat(4)); } }
GeeksForGeeksGeeksForGeeksGeeksForGeeksGeeksForGeeks
stripLeading(): se usa para eliminar el espacio en blanco que está delante de la string
Java
// Java Program to demonstrate // the working of stripLeading() method class GFG { public static void main(String args[]) { String str = " GeeksForGeeks"; System.out.println(str.stripLeading()); } }
GeeksForGeeks
stripTrailing(): se usa para eliminar el espacio en blanco que está en la parte posterior de la string
Java
// Java Program to demonstrate // the working of stripTrailing() method class GFG { public static void main(String args[]) { String str = "GeeksForGeeks "; System.out.println(str.stripTrailing()); } }
GeeksForGeeks
strip(): se usa para eliminar los espacios en blanco que están al frente y al final de la string
Java
// Java Program to demonstrate // the working of strip() method class GFG { public static void main(String args[]) { String str = " GeeksForGeeks "; System.out.println(str.strip()); } }
GeeksForGeeks
2. Nuevos métodos de archivo
writeString(): Esto es para escribir algo de contenido en un archivo.
jshell>Files.writeString(Path.of(example.txt), "GeeksForGeeks!");
readString(): Esto se usa para leer el contenido de un archivo.
jshell>Files.readString(Path.of(example.txt)); Output: "GeeksForGeeks!"
isSameFile(): este método se usa para saber si dos rutas ubican el mismo archivo o no.
jshell>Files.isSameFile(Path.of("example1.txt"), Path.of("example1.txt")); Output: true jshell>Files.isSameFile(Path.of("example2.txt"), Path.of("example1.txt")); Output: false
3. Métodos de reconocimiento de patrones
asMatchPredicate(): este método es similar al método de Java 8 asPredicate(). Introducido en JDK 11, este método creará un predicado si el patrón coincide con la string de entrada.
jshell>var str = Pattern.compile("aba").asMatchPredicate(); jshell>str.test(aabb); Output: false jshell>str.test(aba); Output: true
4. Recolector de basura Epsilon
Esto maneja la asignación de memoria pero no tiene un mecanismo de recuperación de memoria real. Una vez que se agote el montón de Java disponible, JVM se cerrará.
Sus objetivos son: –
- Pruebas de rendimiento
- Prueba de presión de memoria
- mejoras en la latencia de última caída
5. Eliminados los módulos Java EE y CORBA
Estos módulos quedaron obsoletos en Java 9 con una declaración para eliminarlos en versiones posteriores de JDK.
6. Eliminación de funciones de hilo
stop(Throwable obj) y destroy() objetos que se han eliminado del JDK 11 porque solo arrojan UnSupportedOperation y NoSuchMethodError respectivamente. Aparte de eso, no servían de nada.
7. Conversión de unidades de tiempo
Este método se usa para convertir el tiempo dado a una unidad como DÍA, MES, AÑO y también para el tiempo.
jshell>TimeUnit c = TimeUnit.DAYS; Output: DAYS jshell>c.convert(Duration.ofHours(24)); Output: 1 jshell>c.convert(Duration.ofHours(50)); Output: 2
Opcional.isEmpty(): este método devuelve verdadero si el valor de cualquier objeto es nulo y de lo contrario devuelve falso.
jshell>Optional str = Optional.empty(); jshell>str.isEmpty(); Output: true jshell>Optional str = Optional.of("TonyStark"); jshell>str.isEmpty(); Output: false
8. Sintaxis de variables locales para parámetros Lambda
JDK 11 permite usar ‘var’ en expresiones lambda. Esto se introdujo para ser consistente con la sintaxis local ‘var’ de Java 10.
Java
// Java program to show the Variable // used in the lambda expression public class VarInLambdaExample { public static void main(String[] args) { IntStream.of(1, 2, 3, 5, 6, 7) .filter((var i) -> i % 2 == 0) .forEach(System.out::println); } }
Producción:
2 6
Java
// Variable without using lambda expression public class WithoutVarInLambdaExample { public static void main(String[] args) { IntStream.of(1, 2, 3, 5, 6, 7) .filter(i -> i % 2 == 0) .forEach(System.out::println); } }
Producción:
2 6
Funciones y opciones eliminadas
- Eliminación de la clase com.sun.awt.AWTUtilities
- Eliminación de Lucida Fonts de Oracle JDK
- Eliminación de appletviewer Launcher
- El complemento javax.imageio JPEG de Oracle JDK ya no admite imágenes con alfa
- Eliminación de sun.misc.Unsafe.defineClass
- Eliminación de los métodos Thread.destroy() y Thread.stop(Throwable)
- Eliminación de la propiedad sun.nio.ch.disableSystemWideOverlappingFileLockCheck
- Eliminación de la propiedad sun.locale.formatasdefault
- Eliminación de JVM-MANAGEMENT-MIB.mib
- Eliminación del agente SNMP
- Eliminación de tecnologías de implementación de Java
- Eliminación de JMC de Oracle JDK
- Eliminación de JavaFX de Oracle JDK
- JEP 320 Eliminar los módulos Java EE y CORBA
Funciones y opciones en desuso
- ThreadPoolExecutor no debe especificar una dependencia en la finalización
- JEP 335 Desaprobar el motor JavaScript de Nashorn
- Obsoleto -XX+AggressiveOpts
- Soporte obsoleto para funciones comerciales
- Desechar los métodos GSSContext basados en secuencias
- JEP 336 Desaprobar las herramientas y la API de Pack200
Publicación traducida automáticamente
Artículo escrito por universedecoder y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA