
Hoy se lanza una nueva versión de Java: Java / JDK 13. La carrera comenzó con el lanzamiento de primavera de JDK 12, celebrado el 19 de marzo, y la bifurcación de la rama principal se produjo el 13 de junio. Alguien que perdimos en el camino como JEP 343: Herramienta de embalaje , pero en general, todo es normal y es hora de cosechar los beneficios.
Puede descargar la nueva versión aquí . Debajo del corte habrá una pequeña descripción de los nuevos JEP incluidos en esta versión.
Como saben, en JDK 11 tenemos un nuevo GC - ZGC brillante, escalable, rápido y de baja pausa. Bueno, o al menos esa es la idea. Un problema bastante serio en él era que se comportó como un perro en el pesebre y no renunció a la memoria ocupada, incluso si no era necesario. Shenandoah y G1 comenzaron a compartir hace mucho tiempo, y el comportamiento de ZGC parecía estrechar la mano criminalmente. Bueno, ahora todo está arreglado, justo después del tiempo de espera en -XX:ZUncommitDelay
recuperamos nuestros bytes.
La función CDS en sí misma le permite agregar clases cargables a un archivo común, acelerando así el inicio y reduciendo la cantidad de RAM desperdiciada. Desafortunadamente, antes era un poco tonto que tu mismo tuvieras que reiniciar la aplicación muchas veces, formando una lista de tales clases, y luego volcar tus manos en esta lista. Ahora los robots funcionan, no los humanos: cuando -XX:ArchiveClassesAtExit
opción -XX:ArchiveClassesAtExit
, las clases se -XX:ArchiveClassesAtExit
automáticamente en el archivo después de un cierre normal de la aplicación.

Stuart Marks - Doctor Deprecator, miembro consultor del personal técnico de Oracle + olegchir en Oracle Code One, pocos minutos después del anuncio de Java 13
En todos los javas (ahora obsoletos), net.Socket
y java.net.ServerSocket
basan en una mezcla infernal de Java y código C, de la que incluso los teóricos de rendimiento más experimentados lloran. El problema se resolvió escribiendo una nueva implementación utilizando la misma infraestructura interna que NIO, por lo que casi no necesita su propio código nativo. Bueno y, sin embargo, esto no es legado, escribieron todo de manera hermosa y adecuada para pasar a las fibras del proyecto Loom. Si es interesante bajo el capó, entonces debe mirar la clase NioSocketImpl
.
Continuamos preparándonos para la llegada de la coincidencia de patrones. Switch Expressions es la primera característica que le permite escribir código del formulario:
int j = switch (day) { case MONDAY -> 0; case TUESDAY -> 1; default -> { int k = day.toString().length(); int result = f(k); yield result; } };
Como vemos en el ejemplo, desde JDK 12 tenemos un cambio cosmético: cambio de yield
a yield
, ahora todo es como todas las personas normales.
JEP 326: Raw String Literals pasó desapercibido , ¡pero su negocio sigue vivo! "Dígale al camarada Stalin: ha ocurrido un terrible error" . Los bloques de texto son una nueva función de vista previa que le permite hacerlo sin escapar, formatea las líneas de manera conveniente, prepara café con espuma y milagrosamente da control sobre el formato de la cadena resultante.
Más mundano, ahora cualquier ahorcado sin la necesidad de aprender JSP puede escribir algo como:
String html = """ <html> <body> <p>Hello, world</p> </body> </html> """;
Un DBA principiante podrá construir una carrera comenzando con el siguiente código:
String query = """ SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB` WHERE `CITY` = 'NEW DEHLI' ORDER BY `EMP_ID`, `LAST_NAME`; """;

Suena un poco amenazante
Advertencia
Una descripción general de JEP es una pequeña parte de lo que puede y debe contar sobre el nuevo Java. Esta revisión completa también debe incluir una revisión exhaustiva de innovaciones tácticas interesantes y una descripción general de los errores en el rastreador de errores. Quizás alguien ( lany , ¡ay!) Podrá continuar este trabajo. Mi equipo y yo estamos ahora en Oracle Code One, desafortunadamente, sentados en informes o apoyados en el stand de Liberica JDK, es bastante difícil escribir algo tanto tiempo. En cualquier caso, este es un tema para un sitio central completamente diferente.

Brian Goetz - Arquitecto del lenguaje Java en Oracle + olegchir en Oracle Code One
Y también tenemos una conferencia de Joker donde puede discutir la necesidad de cambiar a Java 13, el momento de la transición a ZGC, la cantidad de stock de palomitas de maíz necesaria después de la introducción de bloques de texto y otros temas relevantes. Las entradas, como siempre, se pueden comprar en el sitio web oficial .