{"id":925546,"date":"2024-07-22T04:42:47","date_gmt":"2024-07-22T04:42:47","guid":{"rendered":"https:\/\/proxyelite.info\/?p=925546"},"modified":"2025-06-05T13:52:34","modified_gmt":"2025-06-05T13:52:34","slug":"what-s-new-in-java-11","status":"publish","type":"post","link":"https:\/\/proxyelite.info\/es\/what-s-new-in-java-11\/","title":{"rendered":"\u00bfQu\u00e9 hay de nuevo en Java 11?"},"content":{"rendered":"<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Caracter\u00edstica<\/th><th>Descripci\u00f3n<\/th><th>Ejemplo<\/th><th>Beneficios<\/th><\/tr><\/thead><tbody><tr><td>Sintaxis de variable local para par\u00e1metros Lambda<\/td><td>Permite el uso de <code data-no-translation=\"\">var<\/code> en expresiones lambda para mejorar la legibilidad.<\/td><td><code data-no-translation=\"\">(var x, var y) -&gt; x + y<\/code><\/td><td>Coherencia en el c\u00f3digo.<\/td><\/tr><tr><td>Cliente HTTP (est\u00e1ndar)<\/td><td>Nueva API de cliente HTTP compatible con HTTP\/1.1 y HTTP\/2.<\/td><td><code data-no-translation=\"\">HttpClient client = HttpClient.newHttpClient();<\/code><\/td><td>API moderna y rica en funciones.<\/td><\/tr><tr><td>Epsilon: un recolector de basura sin operaci\u00f3n<\/td><td>Un recolector de basura que no recupera memoria.<\/td><td><code data-no-translation=\"\">java -XX:+UseEpsilonGC MyApp<\/code><\/td><td>\u00datil para pruebas de rendimiento.<\/td><\/tr><tr><td>Control de acceso basado en Nest<\/td><td>Simplifica el control de acceso para tipos anidados.<\/td><td><code data-no-translation=\"\">private static class NestedClass {}<\/code><\/td><td>Desempe\u00f1o mejorado.<\/td><\/tr><tr><td>Constantes din\u00e1micas de archivos de clase<\/td><td>Nueva forma de grupo constante <code data-no-translation=\"\">CONSTANT_Dynamic<\/code>.<\/td><td>N \/ A<\/td><td>Reducci\u00f3n de costes y limitaciones.<\/td><\/tr><tr><td>Mejoras en la API de cadenas<\/td><td>Nuevos m\u00e9todos como <code data-no-translation=\"\">lines()<\/code>, <code data-no-translation=\"\">strip()<\/code>, y <code data-no-translation=\"\">repeat(int)<\/code>.<\/td><td><code data-no-translation=\"\">text.strip()<\/code><\/td><td>Manipulaci\u00f3n de cuerdas m\u00e1s poderosa.<\/td><\/tr><tr><td>Mejoras en la API de archivos<\/td><td>M\u00e9todos para leer y escribir archivos como cadenas.<\/td><td><code data-no-translation=\"\">Files.writeString(path, \"Hello!\");<\/code><\/td><td>Simplifica las operaciones con archivos.<\/td><\/tr><tr><td>Unic\u00f3digo 10<\/td><td>Admite el \u00faltimo est\u00e1ndar Unicode.<\/td><td>N \/ A<\/td><td>Soporte de personajes m\u00e1s completo.<\/td><\/tr><tr><td>Grabador de vuelo<\/td><td>Herramienta de creaci\u00f3n de perfiles incorporada.<\/td><td>N \/ A<\/td><td>Monitoreo de desempe\u00f1o mejorado.<\/td><\/tr><tr><td>Eliminaci\u00f3n de m\u00f3dulos Java EE y CORBA<\/td><td>Se eliminaron los m\u00f3dulos Java EE y CORBA.<\/td><td>N \/ A<\/td><td>JDK optimizado.<\/td><\/tr><tr><td>Desaprobar las herramientas y API de Pack200<\/td><td>API y herramientas de compresi\u00f3n Pack200 obsoletas.<\/td><td>N \/ A<\/td><td>Se\u00f1alando una futura eliminaci\u00f3n.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 introdujo numerosas funciones y mejoras que vale la pena explorar. A continuaci\u00f3n, profundizaremos en cada una de estas nuevas caracter\u00edsticas, brindando descripciones detalladas, ejemplos pr\u00e1cticos y los beneficios que brindan a los desarrolladores.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sintaxis de variable local para par\u00e1metros Lambda<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las adiciones m\u00e1s notables de Java 11 es la compatibilidad con <code data-no-translation=\"\">var<\/code> palabra clave en expresiones lambda. Esta caracter\u00edstica simplifica la sintaxis y mejora la legibilidad del c\u00f3digo al permitir a los desarrolladores utilizar <code data-no-translation=\"\">var<\/code> para declarar los par\u00e1metros formales de expresiones lambda escritas impl\u00edcitamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo:<\/strong><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code data-no-translation=\"\">(var x, var y) -&gt; x + y\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Consistencia:<\/strong> Usando <code data-no-translation=\"\">var<\/code> en los par\u00e1metros lambda hace que el c\u00f3digo sea coherente con las declaraciones de variables locales, lo que reduce la carga cognitiva de los desarrolladores.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cliente HTTP (est\u00e1ndar)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La nueva API de cliente HTTP, estandarizada en Java 11, admite HTTP\/1.1 y HTTP\/2. Esta API moderna y rica en funciones facilita la realizaci\u00f3n de operaciones HTTP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo:<\/strong><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code data-no-translation=\"\">HttpClient client = HttpClient.newHttpClient();\nHttpRequest request = HttpRequest.newBuilder()\n    .uri(URI.create(&quot;https:\/\/example.com&quot;))\n    .build();\nHttpResponse&lt;String&gt; response = client.send(request, HttpResponse.BodyHandlers.ofString());\nSystem.out.println(response.body());\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>API moderna:<\/strong> Ofrece una forma m\u00e1s poderosa y flexible de manejar solicitudes y respuestas HTTP.<\/li>\n\n\n\n<li><strong>Desempe\u00f1o mejorado:<\/strong> Admite HTTP\/2, que puede mejorar el rendimiento con funciones como multiplexaci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Epsilon: un recolector de basura sin operaci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 presenta Epsilon, un recolector de basura no operativo que no recupera memoria. Esto es particularmente \u00fatil para pruebas de rendimiento y evaluaci\u00f3n de presi\u00f3n de memoria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo:<\/strong><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code data-no-translation=\"\">java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xmx2g MyApp\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pruebas de rendimiento:<\/strong> Ayuda en la evaluaci\u00f3n comparativa y las pruebas de rendimiento al eliminar la sobrecarga de la recolecci\u00f3n de basura.<\/li>\n\n\n\n<li><strong>Gesti\u00f3n de la memoria:<\/strong> \u00datil en escenarios donde la asignaci\u00f3n de memoria se gestiona externamente.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Control de acceso basado en Nest<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El control de acceso basado en Nest en Java 11 simplifica las reglas de acceso para tipos anidados, lo que permite una mejor encapsulaci\u00f3n y control de acceso dentro de clases anidadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo:<\/strong><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code data-no-translation=\"\">public class OuterClass {\n    private static class NestedClass {\n        private void nestedMethod() {\n            System.out.println(&quot;Inside NestedClass&quot;);\n        }\n    }\n}\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Encapsulaci\u00f3n mejorada:<\/strong> Proporciona un mejor control sobre el acceso de los miembros de la clase anidada.<\/li>\n\n\n\n<li><strong>Actuaci\u00f3n:<\/strong> Mejora el rendimiento simplificando las reglas de control de acceso.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Constantes din\u00e1micas de archivos de clase<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La introducci\u00f3n de <code data-no-translation=\"\">CONSTANT_Dynamic<\/code> en el grupo de constantes permite constantes m\u00e1s flexibles y eficientes en los archivos de clase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Costo reducido:<\/strong> Reduce el costo y las limitaciones asociadas con la creaci\u00f3n de nuevos tipos de constantes de archivos de clase.<\/li>\n\n\n\n<li><strong>Flexibilidad:<\/strong> Proporciona formas m\u00e1s din\u00e1micas y flexibles de manejar constantes en el c\u00f3digo de bytes de Java.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Mejoras en la API de cadenas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 trae varias mejoras al <code data-no-translation=\"\">String<\/code> clase, incluyendo nuevos m\u00e9todos como <code data-no-translation=\"\">lines()<\/code>, <code data-no-translation=\"\">strip()<\/code>, <code data-no-translation=\"\">stripLeading()<\/code>, <code data-no-translation=\"\">stripTrailing()<\/code>, <code data-no-translation=\"\">repeat(int)<\/code>, y <code data-no-translation=\"\">isBlank()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplos:<\/strong><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code data-no-translation=\"\">String multiline = &quot;line1\\nline2\\nline3&quot;;\nmultiline.lines().forEach(System.out::println);\n\nString text = &quot;  hello  &quot;;\nSystem.out.println(text.strip());           \/\/ &quot;hello&quot;\nSystem.out.println(text.stripLeading());    \/\/ &quot;hello  &quot;\nSystem.out.println(text.stripTrailing());   \/\/ &quot;  hello&quot;\nSystem.out.println(&quot;=&quot;.repeat(5));          \/\/ &quot;=====&quot;\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Potente manipulaci\u00f3n de cuerdas:<\/strong> Los nuevos m\u00e9todos proporcionan formas m\u00e1s poderosas y convenientes de manipular cadenas.<\/li>\n\n\n\n<li><strong>Limpieza del c\u00f3digo:<\/strong> Simplifica las operaciones de cadenas comunes, lo que genera un c\u00f3digo m\u00e1s limpio y legible.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Mejoras en la API de archivos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El <code data-no-translation=\"\">Files<\/code> La clase en Java 11 incluye nuevos m\u00e9todos como <code data-no-translation=\"\">readString(Path)<\/code> y <code data-no-translation=\"\">writeString(Path, CharSequence)<\/code> para leer y escribir archivos como cadenas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo:<\/strong><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code data-no-translation=\"\">Path path = Paths.get(&quot;file.txt&quot;);\nFiles.writeString(path, &quot;Hello, World!&quot;);\nString content = Files.readString(path);\nSystem.out.println(content);\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Operaciones de archivos simplificadas:<\/strong> Hace que leer y escribir archivos sea m\u00e1s sencillo y menos propenso a errores.<\/li>\n\n\n\n<li><strong>Productividad mejorada:<\/strong> Reduce el c\u00f3digo repetitivo, mejorando la productividad del desarrollador.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Unic\u00f3digo 10<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 es compatible con Unicode 10, que incluye nuevos caracteres y secuencias de comandos, lo que garantiza que las aplicaciones Java puedan manejar los caracteres internacionales m\u00e1s recientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Soporte integral de personajes:<\/strong> Proporciona un mejor soporte para la internacionalizaci\u00f3n y localizaci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Grabador de vuelo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java Flight Recorder (JFR) ahora est\u00e1 incluido en OpenJDK, lo que proporciona una poderosa herramienta para crear perfiles y monitorear aplicaciones Java.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Supervisi\u00f3n del rendimiento:<\/strong> Ayuda a diagnosticar problemas de rendimiento al registrar informaci\u00f3n detallada sobre la ejecuci\u00f3n de la aplicaci\u00f3n.<\/li>\n\n\n\n<li><strong>Herramienta incorporada:<\/strong> Integrado en el JDK, lo que lo hace disponible sin necesidad de herramientas externas.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Eliminaci\u00f3n de m\u00f3dulos Java EE y CORBA<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 ha eliminado los m\u00f3dulos Java EE y CORBA, que quedaron obsoletos en versiones anteriores. Estas API ahora est\u00e1n disponibles como bibliotecas independientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>JDK optimizado:<\/strong> Reduce el tama\u00f1o y la complejidad del JDK, haci\u00e9ndolo m\u00e1s liviano y eficiente.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Desaprobar las herramientas y API de Pack200<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las API y las herramientas de compresi\u00f3n Pack200 han quedado obsoletas en Java 11, lo que indica su eliminaci\u00f3n en una versi\u00f3n futura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beneficios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Preparaci\u00f3n para el futuro:<\/strong> Alienta a los desarrolladores a migrar a herramientas de compresi\u00f3n m\u00e1s modernas, prepar\u00e1ndose para la eventual eliminaci\u00f3n de Pack200.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusi\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 trae una serie de nuevas caracter\u00edsticas y mejoras que mejoran las capacidades del lenguaje y la productividad de los desarrolladores. Desde la moderna API de cliente HTTP hasta las potentes mejoras de la API de archivos y cadenas, estas actualizaciones hacen de Java una plataforma m\u00e1s s\u00f3lida y eficiente. Si bien la eliminaci\u00f3n de m\u00f3dulos obsoletos y la introducci\u00f3n de nuevos recolectores de basura como Epsilon muestran un claro enfoque en el rendimiento y la modernizaci\u00f3n, los desarrolladores deber\u00edan adoptar estos cambios para aprovechar todo el potencial de Java 11.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tablas y descripciones detalladas:<\/strong> Para proporcionar una comprensi\u00f3n m\u00e1s completa, a continuaci\u00f3n se muestran descripciones detalladas y ejemplos de algunas caracter\u00edsticas con tablas integradas:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Tabla de mejoras de API de cadenas<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>M\u00e9todo<\/th><th>Descripci\u00f3n<\/th><th>Ejemplo<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\">lines()<\/code><\/td><td>Divide la cadena en l\u00edneas.<\/td><td><code data-no-translation=\"\">multiline.lines().forEach(System.out::println);<\/code><\/td><\/tr><tr><td><code data-no-translation=\"\">strip()<\/code><\/td><td>Elimina los espacios en blanco iniciales y finales.<\/td><td><code data-no-translation=\"\">text.strip()<\/code><\/td><\/tr><tr><td><code data-no-translation=\"\">stripLeading()<\/code><\/td><td>Elimina los espacios en blanco iniciales.<\/td><td><code data-no-translation=\"\">text.stripLeading()<\/code><\/td><\/tr><tr><td><code data-no-translation=\"\">stripTrailing()<\/code><\/td><td>Elimina los espacios en blanco finales.<\/td><td><code data-no-translation=\"\">text.stripTrailing()<\/code><\/td><\/tr><tr><td><code data-no-translation=\"\">repeat(int)<\/code><\/td><td>Repite la cadena dadas veces.<\/td><td><code data-no-translation=\"\">\"=\".repeat(5)<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Las nuevas funciones de Java 11 garantizan que los desarrolladores tengan acceso a herramientas y API modernas y eficientes, lo que lo convierte en una actualizaci\u00f3n esencial para cualquier proyecto de desarrollo de Java.<\/p>","protected":false},"excerpt":{"rendered":"<p>Feature Description Example Benefits Local-Variable Syntax for Lambda Parameters Allows the use of var in lambda expressions for improved readability. (var x, var y) -&gt; x + y Consistency in code. HTTP Client (Standard) New HTTP Client API supporting HTTP\/1.1 and HTTP\/2. HttpClient client = HttpClient.newHttpClient(); Modern, feature-rich API. Epsilon: A No-Op Garbage Collector A [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":925563,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-925546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles"],"acf":[],"_links":{"self":[{"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/posts\/925546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/comments?post=925546"}],"version-history":[{"count":4,"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/posts\/925546\/revisions"}],"predecessor-version":[{"id":926504,"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/posts\/925546\/revisions\/926504"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/media\/925563"}],"wp:attachment":[{"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/media?parent=925546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/categories?post=925546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/proxyelite.info\/es\/wp-json\/wp\/v2\/tags?post=925546"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}