Entrevista para matar | Hable sobre las nuevas características introducidas por Java8-18 (5)

¡Acostúmbrate a escribir juntos! Este es el décimo día de mi participación en el "Nuggets Daily New Plan · April Update Challenge", haz clic para ver los detalles del evento .

Java8 se lanzó el 18 de marzo de 2014 y, a partir del 6 de abril de 2022, la última versión es Java18. Las versiones 17, 11 y 8 son las versiones de soporte a largo plazo (LTS) compatibles actualmente. Este artículo lo lleva a revisar las características de cada versión a partir de Java 8. ¡Siéntese en el banco y listo! Si desea leer el artículo anterior, haga clic aquí para una entrevista y anti-kill | Hable sobre las nuevas características introducidas por Java8-18 (4)

Novedades en Java 14

Registros

Los registros son una forma de clase restringida ideal para pojos. Una clase de soporte de datos estándar tendrá algunos campos privados, así como constructores y captadores/establecedores.

Vamos a crear un ejemplo de una clase de soporte de datos simple con dos miembros usando la sintaxis de Java 8:

public class Location {
    double x;
    double y;
    public Location(double x, double y) {
    this.x = x;
    this.y = y;
    }
    public double getX() {
     return x;
    }
    public double getY() {
     return y;
    }
}
复制代码

Podemos reescribir la clase anterior usando Record usando el código que se proporciona a continuación:

record NewLocation(double x, double y) {}
复制代码

Record obtendrá captadores y constructores en tiempo de ejecución, y también obtendrá los métodos equals(), hashcode() y toString().

Excepción de puntero nulo útil

Hasta entonces, el seguimiento de la pila para NullPointerException no tiene mucho que decir, excepto que cierto valor en una línea en un archivo determinado es nulo.

Si bien esta información es útil, solo son sugerencias para depurar una línea de código, no solo mirar los registros para que el desarrollador los entienda.

Ahora, Java ha facilitado este proceso al agregar la capacidad de indicar qué es exactamente nulo en una línea de código dada.

He aquí un ejemplo de un puntero nulo:

int[] arr = null;
arr[0] = 1;
复制代码

En versiones anteriores, al ejecutar este código, el registro mostraba:

Exception in thread "main" java.lang.NullPointerException
at com.baeldung.MyClass.main(MyClass.java:27)
复制代码

Pero para Java 14, el registro imprime:

java.lang.NullPointerException: Cannot store to int array because "a" is null
复制代码

Como podemos ver, ahora sabemos exactamente qué variable causó la excepción.

Bloques de texto

Los bloques de texto recibieron otra actualización de Java 13 y ahora tienen dos nuevas secuencias de escape, pero aún son una función de vista previa.

  • : indica final de línea, para no introducir caracteres de nueva línea
  • \s: representa un solo espacio

por ejemplo:

String multiline = "A quick brown fox jumps over a lazy dog; the lazy dog howls loudly.";
复制代码

Ahora se puede escribir como:

String multiline = """
    A quick brown fox jumps over a lazy dog; \
    the lazy dog howls loudly.""";
复制代码

Esto mejora la legibilidad de las cadenas.

Por supuesto, hay otras características nuevas, que incluyen pero no se limitan a:

  • Herramienta de embalaje
  • API de acceso a memoria externa
  • ZGC en Windows
  • Asignación de memoria compatible con NUMA para G1
  • Transmisión de eventos JFR

Para continuar, sigamos hablando de las nuevas funciones de cada versión, ¡así que manténgase al tanto!

Supongo que te gusta

Origin juejin.im/post/7084698526026432548
Recomendado
Clasificación