{"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\/vi\/what-s-new-in-java-11\/","title":{"rendered":"C\u00f3 g\u00ec m\u1edbi trong Java 11?"},"content":{"rendered":"<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>T\u00ednh n\u0103ng<\/th><th>S\u1ef1 mi\u00eau t\u1ea3<\/th><th>V\u00ed d\u1ee5<\/th><th>Nh\u1eefng l\u1ee3i \u00edch<\/th><\/tr><\/thead><tbody><tr><td>C\u00fa ph\u00e1p bi\u1ebfn c\u1ee5c b\u1ed9 cho tham s\u1ed1 Lambda<\/td><td>Cho ph\u00e9p s\u1eed d\u1ee5ng <code data-no-translation=\"\">var<\/code> trong bi\u1ec3u th\u1ee9c lambda \u0111\u1ec3 c\u1ea3i thi\u1ec7n kh\u1ea3 n\u0103ng \u0111\u1ecdc.<\/td><td><code data-no-translation=\"\">(var x, var y) -&gt; x + y<\/code><\/td><td>T\u00ednh nh\u1ea5t qu\u00e1n trong m\u00e3.<\/td><\/tr><tr><td>M\u00e1y kh\u00e1ch HTTP (Ti\u00eau chu\u1ea9n)<\/td><td>API m\u00e1y kh\u00e1ch HTTP m\u1edbi h\u1ed7 tr\u1ee3 HTTP\/1.1 v\u00e0 HTTP\/2.<\/td><td><code data-no-translation=\"\">HttpClient client = HttpClient.newHttpClient();<\/code><\/td><td>API hi\u1ec7n \u0111\u1ea1i, gi\u00e0u t\u00ednh n\u0103ng.<\/td><\/tr><tr><td>Epsilon: C\u00f4ng c\u1ee5 thu gom r\u00e1c kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng<\/td><td>Tr\u00ecnh thu gom r\u00e1c kh\u00f4ng l\u1ea5y l\u1ea1i \u0111\u01b0\u1ee3c b\u1ed9 nh\u1edb.<\/td><td><code data-no-translation=\"\">java -XX:+UseEpsilonGC MyApp<\/code><\/td><td>H\u1eefu \u00edch cho vi\u1ec7c ki\u1ec3m tra hi\u1ec7u su\u1ea5t.<\/td><\/tr><tr><td>Ki\u1ec3m so\u00e1t truy c\u1eadp d\u1ef1a tr\u00ean Nest<\/td><td>\u0110\u01a1n gi\u1ea3n h\u00f3a vi\u1ec7c ki\u1ec3m so\u00e1t truy c\u1eadp cho c\u00e1c ki\u1ec3u l\u1ed3ng nhau.<\/td><td><code data-no-translation=\"\">private static class NestedClass {}<\/code><\/td><td>C\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t.<\/td><\/tr><tr><td>H\u1eb1ng s\u1ed1 t\u1ec7p l\u1edbp \u0111\u1ed9ng<\/td><td>H\u00ecnh th\u1ee9c nh\u00f3m li\u00ean t\u1ee5c m\u1edbi <code data-no-translation=\"\">CONSTANT_Dynamic<\/code>.<\/td><td>kh\u00f4ng \u00e1p d\u1ee5ng<\/td><td>Gi\u1ea3m chi ph\u00ed v\u00e0 h\u1ea1n ch\u1ebf.<\/td><\/tr><tr><td>C\u1ea3i ti\u1ebfn API chu\u1ed7i<\/td><td>Nh\u1eefng ph\u01b0\u01a1ng ph\u00e1p m\u1edbi nh\u01b0 <code data-no-translation=\"\">lines()<\/code>, <code data-no-translation=\"\">strip()<\/code>, V\u00e0 <code data-no-translation=\"\">repeat(int)<\/code>.<\/td><td><code data-no-translation=\"\">text.strip()<\/code><\/td><td>Thao t\u00e1c chu\u1ed7i m\u1ea1nh m\u1ebd h\u01a1n.<\/td><\/tr><tr><td>C\u1ea3i ti\u1ebfn API t\u1ec7p<\/td><td>C\u00e1c ph\u01b0\u01a1ng ph\u00e1p \u0111\u1ecdc v\u00e0 ghi file d\u01b0\u1edbi d\u1ea1ng chu\u1ed7i.<\/td><td><code data-no-translation=\"\">Files.writeString(path, \"Hello!\");<\/code><\/td><td>\u0110\u01a1n gi\u1ea3n h\u00f3a c\u00e1c ho\u1ea1t \u0111\u1ed9ng t\u1eadp tin.<\/td><\/tr><tr><td>Unicode 10<\/td><td>H\u1ed7 tr\u1ee3 chu\u1ea9n Unicode m\u1edbi nh\u1ea5t.<\/td><td>kh\u00f4ng \u00e1p d\u1ee5ng<\/td><td>H\u1ed7 tr\u1ee3 nh\u00e2n v\u1eadt to\u00e0n di\u1ec7n h\u01a1n.<\/td><\/tr><tr><td>M\u00e1y ghi h\u00ecnh bay<\/td><td>C\u00f4ng c\u1ee5 h\u1ed3 s\u01a1 t\u00edch h\u1ee3p.<\/td><td>kh\u00f4ng \u00e1p d\u1ee5ng<\/td><td>T\u0103ng c\u01b0\u1eddng gi\u00e1m s\u00e1t hi\u1ec7u su\u1ea5t.<\/td><\/tr><tr><td>Lo\u1ea1i b\u1ecf c\u00e1c m\u00f4-\u0111un Java EE v\u00e0 CORBA<\/td><td>\u0110\u00e3 x\u00f3a c\u00e1c m\u00f4-\u0111un Java EE v\u00e0 CORBA.<\/td><td>kh\u00f4ng \u00e1p d\u1ee5ng<\/td><td>JDK \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp h\u1ee3p l\u00fd.<\/td><\/tr><tr><td>Kh\u00f4ng d\u00f9ng n\u1eefa c\u00e1c c\u00f4ng c\u1ee5 v\u00e0 API Pack200<\/td><td>C\u00e1c c\u00f4ng c\u1ee5 n\u00e9n v\u00e0 API Pack200 kh\u00f4ng \u0111\u01b0\u1ee3c d\u00f9ng n\u1eefa.<\/td><td>kh\u00f4ng \u00e1p d\u1ee5ng<\/td><td>B\u00e1o hi\u1ec7u s\u1ef1 lo\u1ea1i b\u1ecf trong t\u01b0\u01a1ng lai.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 \u0111\u00e3 gi\u1edbi thi\u1ec7u nhi\u1ec1u t\u00ednh n\u0103ng v\u00e0 c\u1ea3i ti\u1ebfn \u0111\u00e1ng \u0111\u1ec3 kh\u00e1m ph\u00e1. D\u01b0\u1edbi \u0111\u00e2y, ch\u00fang t\u00f4i s\u1ebd \u0111i s\u00e2u h\u01a1n v\u00e0o t\u1eebng t\u00ednh n\u0103ng m\u1edbi n\u00e0y, cung c\u1ea5p m\u00f4 t\u1ea3 chi ti\u1ebft, v\u00ed d\u1ee5 th\u1ef1c t\u1ebf v\u00e0 l\u1ee3i \u00edch m\u00e0 ch\u00fang mang l\u1ea1i cho nh\u00e0 ph\u00e1t tri\u1ec3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00fa ph\u00e1p bi\u1ebfn c\u1ee5c b\u1ed9 cho tham s\u1ed1 Lambda<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1ed9t trong nh\u1eefng b\u1ed5 sung \u0111\u00e1ng ch\u00fa \u00fd nh\u1ea5t trong Java 11 l\u00e0 s\u1ef1 h\u1ed7 tr\u1ee3 cho <code data-no-translation=\"\">var<\/code> t\u1eeb kh\u00f3a trong bi\u1ec3u th\u1ee9c lambda. T\u00ednh n\u0103ng n\u00e0y \u0111\u01a1n gi\u1ea3n h\u00f3a c\u00fa ph\u00e1p v\u00e0 c\u1ea3i thi\u1ec7n kh\u1ea3 n\u0103ng \u0111\u1ecdc m\u00e3 b\u1eb1ng c\u00e1ch cho ph\u00e9p c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n s\u1eed d\u1ee5ng <code data-no-translation=\"\">var<\/code> \u0111\u1ec3 khai b\u00e1o c\u00e1c tham s\u1ed1 h\u00ecnh th\u1ee9c c\u1ee7a bi\u1ec3u th\u1ee9c lambda \u0111\u01b0\u1ee3c g\u00f5 ng\u1ea7m.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>V\u00ed d\u1ee5:<\/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>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>T\u00ednh nh\u1ea5t qu\u00e1n:<\/strong> s\u1eed d\u1ee5ng <code data-no-translation=\"\">var<\/code> trong tham s\u1ed1 lambda l\u00e0m cho m\u00e3 nh\u1ea5t qu\u00e1n v\u1edbi c\u00e1c khai b\u00e1o bi\u1ebfn c\u1ee5c b\u1ed9, gi\u1ea3m t\u1ea3i nh\u1eadn th\u1ee9c cho nh\u00e0 ph\u00e1t tri\u1ec3n.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">M\u00e1y kh\u00e1ch HTTP (Ti\u00eau chu\u1ea9n)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">API m\u00e1y kh\u00e1ch HTTP m\u1edbi, \u0111\u01b0\u1ee3c chu\u1ea9n h\u00f3a trong Java 11, h\u1ed7 tr\u1ee3 c\u1ea3 HTTP\/1.1 v\u00e0 HTTP\/2. API hi\u1ec7n \u0111\u1ea1i v\u00e0 gi\u00e0u t\u00ednh n\u0103ng n\u00e0y gi\u00fap th\u1ef1c hi\u1ec7n c\u00e1c ho\u1ea1t \u0111\u1ed9ng HTTP d\u1ec5 d\u00e0ng h\u01a1n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>V\u00ed d\u1ee5:<\/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>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>API hi\u1ec7n \u0111\u1ea1i:<\/strong> Cung c\u1ea5p m\u1ed9t c\u00e1ch m\u1ea1nh m\u1ebd v\u00e0 linh ho\u1ea1t h\u01a1n \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c y\u00eau c\u1ea7u v\u00e0 ph\u1ea3n h\u1ed3i HTTP.<\/li>\n\n\n\n<li><strong>Hi\u1ec7u su\u1ea5t \u0111\u01b0\u1ee3c c\u1ea3i thi\u1ec7n:<\/strong> H\u1ed7 tr\u1ee3 HTTP\/2, c\u00f3 th\u1ec3 c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t v\u1edbi c\u00e1c t\u00ednh n\u0103ng nh\u01b0 gh\u00e9p k\u00eanh.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Epsilon: C\u00f4ng c\u1ee5 thu gom r\u00e1c kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 gi\u1edbi thi\u1ec7u Epsilon, m\u1ed9t tr\u00ecnh thu gom r\u00e1c kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng, kh\u00f4ng l\u1ea5y l\u1ea1i b\u1ed9 nh\u1edb. \u0110i\u1ec1u n\u00e0y \u0111\u1eb7c bi\u1ec7t h\u1eefu \u00edch cho vi\u1ec7c ki\u1ec3m tra hi\u1ec7u su\u1ea5t v\u00e0 \u0111\u00e1nh gi\u00e1 \u00e1p l\u1ef1c b\u1ed9 nh\u1edb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>V\u00ed d\u1ee5:<\/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>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ki\u1ec3m tra n\u0103ng su\u1ea5t:<\/strong> Gi\u00fap \u0111o \u0111i\u1ec3m chu\u1ea9n v\u00e0 ki\u1ec3m tra hi\u1ec7u su\u1ea5t b\u1eb1ng c\u00e1ch lo\u1ea1i b\u1ecf chi ph\u00ed thu gom r\u00e1c.<\/li>\n\n\n\n<li><strong>Qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb:<\/strong> H\u1eefu \u00edch trong c\u00e1c tr\u01b0\u1eddng h\u1ee3p c\u1ea5p ph\u00e1t b\u1ed9 nh\u1edb \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd b\u00ean ngo\u00e0i.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ki\u1ec3m so\u00e1t truy c\u1eadp d\u1ef1a tr\u00ean Nest<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ki\u1ec3m so\u00e1t truy c\u1eadp d\u1ef1a tr\u00ean Nest trong Java 11 \u0111\u01a1n gi\u1ea3n h\u00f3a c\u00e1c quy t\u1eafc truy c\u1eadp cho c\u00e1c ki\u1ec3u l\u1ed3ng nhau, cho ph\u00e9p \u0111\u00f3ng g\u00f3i v\u00e0 ki\u1ec3m so\u00e1t truy c\u1eadp t\u1ed1t h\u01a1n trong c\u00e1c l\u1edbp l\u1ed3ng nhau.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>V\u00ed d\u1ee5:<\/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>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>C\u1ea3i thi\u1ec7n \u0111\u00f3ng g\u00f3i:<\/strong> Cung c\u1ea5p kh\u1ea3 n\u0103ng ki\u1ec3m so\u00e1t t\u1ed1t h\u01a1n quy\u1ec1n truy c\u1eadp c\u1ee7a c\u00e1c th\u00e0nh vi\u00ean l\u1edbp l\u1ed3ng nhau.<\/li>\n\n\n\n<li><strong>Hi\u1ec7u su\u1ea5t:<\/strong> N\u00e2ng cao hi\u1ec7u su\u1ea5t b\u1eb1ng c\u00e1ch \u0111\u01a1n gi\u1ea3n h\u00f3a c\u00e1c quy t\u1eafc ki\u1ec3m so\u00e1t truy c\u1eadp.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">H\u1eb1ng s\u1ed1 t\u1ec7p l\u1edbp \u0111\u1ed9ng<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u1ef1 gi\u1edbi thi\u1ec7u c\u1ee7a <code data-no-translation=\"\">CONSTANT_Dynamic<\/code> trong nh\u00f3m h\u1eb1ng s\u1ed1 cho ph\u00e9p c\u00e1c h\u1eb1ng s\u1ed1 linh ho\u1ea1t v\u00e0 hi\u1ec7u qu\u1ea3 h\u01a1n trong c\u00e1c t\u1ec7p l\u1edbp.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gi\u1ea3m chi ph\u00ed:<\/strong> Gi\u1ea3m chi ph\u00ed v\u00e0 c\u00e1c h\u1ea1n ch\u1ebf li\u00ean quan \u0111\u1ebfn vi\u1ec7c t\u1ea1o c\u00e1c lo\u1ea1i h\u1eb1ng s\u1ed1 t\u1ec7p l\u1edbp m\u1edbi.<\/li>\n\n\n\n<li><strong>Uy\u1ec3n chuy\u1ec3n:<\/strong> Cung c\u1ea5p c\u00e1c c\u00e1ch n\u0103ng \u0111\u1ed9ng v\u00e0 linh ho\u1ea1t h\u01a1n \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c h\u1eb1ng s\u1ed1 trong m\u00e3 byte Java.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">C\u1ea3i ti\u1ebfn API chu\u1ed7i<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 mang \u0111\u1ebfn m\u1ed9t s\u1ed1 c\u1ea3i ti\u1ebfn cho <code data-no-translation=\"\">String<\/code> l\u1edbp, bao g\u1ed3m c\u00e1c ph\u01b0\u01a1ng th\u1ee9c m\u1edbi nh\u01b0 <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>, V\u00e0 <code data-no-translation=\"\">isBlank()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>V\u00ed d\u1ee5:<\/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>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Thao t\u00e1c chu\u1ed7i m\u1ea1nh m\u1ebd:<\/strong> C\u00e1c ph\u01b0\u01a1ng ph\u00e1p m\u1edbi cung c\u1ea5p nh\u1eefng c\u00e1ch th\u1ee9c m\u1ea1nh m\u1ebd v\u00e0 thu\u1eadn ti\u1ec7n h\u01a1n \u0111\u1ec3 thao t\u00e1c v\u1edbi chu\u1ed7i.<\/li>\n\n\n\n<li><strong>\u0110\u1ed9 s\u1ea1ch c\u1ee7a m\u00e3:<\/strong> \u0110\u01a1n gi\u1ea3n h\u00f3a c\u00e1c thao t\u00e1c chu\u1ed7i ph\u1ed5 bi\u1ebfn, gi\u00fap m\u00e3 s\u1ea1ch h\u01a1n v\u00e0 d\u1ec5 \u0111\u1ecdc h\u01a1n.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">C\u1ea3i ti\u1ebfn API t\u1ec7p<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00e1c <code data-no-translation=\"\">Files<\/code> l\u1edbp trong Java 11 bao g\u1ed3m c\u00e1c ph\u01b0\u01a1ng th\u1ee9c m\u1edbi nh\u01b0 <code data-no-translation=\"\">readString(Path)<\/code> V\u00e0 <code data-no-translation=\"\">writeString(Path, CharSequence)<\/code> \u0111\u1ec3 \u0111\u1ecdc v\u00e0 ghi t\u1eadp tin d\u01b0\u1edbi d\u1ea1ng chu\u1ed7i.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>V\u00ed d\u1ee5:<\/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>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ho\u1ea1t \u0111\u1ed9ng t\u1eadp tin \u0111\u01a1n gi\u1ea3n h\u00f3a:<\/strong> L\u00e0m cho vi\u1ec7c \u0111\u1ecdc v\u00e0 ghi v\u00e0o t\u1ec7p tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n h\u01a1n v\u00e0 \u00edt x\u1ea3y ra l\u1ed7i h\u01a1n.<\/li>\n\n\n\n<li><strong>C\u1ea3i thi\u1ec7n n\u0103ng su\u1ea5t:<\/strong> Gi\u1ea3m m\u00e3 so\u1ea1n s\u1eb5n, n\u00e2ng cao n\u0103ng su\u1ea5t c\u1ee7a nh\u00e0 ph\u00e1t tri\u1ec3n.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Unicode 10<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 h\u1ed7 tr\u1ee3 Unicode 10, bao g\u1ed3m c\u00e1c k\u00fd t\u1ef1 v\u00e0 t\u1eadp l\u1ec7nh m\u1edbi, \u0111\u1ea3m b\u1ea3o r\u1eb1ng c\u00e1c \u1ee9ng d\u1ee5ng Java c\u00f3 th\u1ec3 x\u1eed l\u00fd c\u00e1c k\u00fd t\u1ef1 qu\u1ed1c t\u1ebf m\u1edbi nh\u1ea5t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>H\u1ed7 tr\u1ee3 nh\u00e2n v\u1eadt to\u00e0n di\u1ec7n:<\/strong> Cung c\u1ea5p h\u1ed7 tr\u1ee3 t\u1ed1t h\u01a1n cho vi\u1ec7c qu\u1ed1c t\u1ebf h\u00f3a v\u00e0 n\u1ed9i \u0111\u1ecba h\u00f3a.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">M\u00e1y ghi h\u00ecnh bay<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java Flight Recorder (JFR) hi\u1ec7n \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o OpenJDK, cung c\u1ea5p m\u1ed9t c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd \u0111\u1ec3 l\u1eadp h\u1ed3 s\u01a1 v\u00e0 gi\u00e1m s\u00e1t c\u00e1c \u1ee9ng d\u1ee5ng Java.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gi\u00e1m s\u00e1t hi\u1ec7u su\u1ea5t:<\/strong> Gi\u00fap ch\u1ea9n \u0111o\u00e1n c\u00e1c v\u1ea5n \u0111\u1ec1 v\u1ec1 hi\u1ec7u su\u1ea5t b\u1eb1ng c\u00e1ch ghi l\u1ea1i th\u00f4ng tin chi ti\u1ebft v\u1ec1 qu\u00e1 tr\u00ecnh th\u1ef1c thi c\u1ee7a \u1ee9ng d\u1ee5ng.<\/li>\n\n\n\n<li><strong>C\u00f4ng c\u1ee5 t\u00edch h\u1ee3p:<\/strong> \u0110\u01b0\u1ee3c t\u00edch h\u1ee3p v\u00e0o JDK, gi\u00fap n\u00f3 c\u00f3 s\u1eb5n m\u00e0 kh\u00f4ng c\u1ea7n c\u00e1c c\u00f4ng c\u1ee5 b\u00ean ngo\u00e0i.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Lo\u1ea1i b\u1ecf c\u00e1c m\u00f4-\u0111un Java EE v\u00e0 CORBA<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 \u0111\u00e3 lo\u1ea1i b\u1ecf c\u00e1c m\u00f4-\u0111un Java EE v\u00e0 CORBA kh\u00f4ng \u0111\u01b0\u1ee3c d\u00f9ng n\u1eefa trong c\u00e1c phi\u00ean b\u1ea3n tr\u01b0\u1edbc. C\u00e1c API n\u00e0y hi\u1ec7n c\u00f3 s\u1eb5n d\u01b0\u1edbi d\u1ea1ng th\u01b0 vi\u1ec7n ri\u00eang bi\u1ec7t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>JDK \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp h\u1ee3p l\u00fd:<\/strong> Gi\u1ea3m k\u00edch th\u01b0\u1edbc v\u00e0 \u0111\u1ed9 ph\u1ee9c t\u1ea1p c\u1ee7a JDK, l\u00e0m cho n\u00f3 nh\u1eb9 h\u01a1n v\u00e0 hi\u1ec7u qu\u1ea3 h\u01a1n.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ng\u1eebng s\u1eed d\u1ee5ng API v\u00e0 c\u00f4ng c\u1ee5 Pack200<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00e1c c\u00f4ng c\u1ee5 n\u00e9n v\u00e0 API Pack200 kh\u00f4ng \u0111\u01b0\u1ee3c d\u00f9ng n\u1eefa trong Java 11, b\u00e1o hi\u1ec7u vi\u1ec7c lo\u1ea1i b\u1ecf ch\u00fang trong b\u1ea3n ph\u00e1t h\u00e0nh trong t\u01b0\u01a1ng lai.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nh\u1eefng l\u1ee3i \u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ch\u1ee9ng minh trong t\u01b0\u01a1ng lai:<\/strong> Khuy\u1ebfn kh\u00edch c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n chuy\u1ec3n sang c\u00e1c c\u00f4ng c\u1ee5 n\u00e9n hi\u1ec7n \u0111\u1ea1i h\u01a1n, chu\u1ea9n b\u1ecb cho vi\u1ec7c lo\u1ea1i b\u1ecf Pack200.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ph\u1ea7n k\u1ebft lu\u1eadn<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java 11 mang \u0111\u1ebfn m\u1ed9t lo\u1ea1t t\u00ednh n\u0103ng v\u00e0 c\u1ea3i ti\u1ebfn m\u1edbi gi\u00fap n\u00e2ng cao kh\u1ea3 n\u0103ng c\u1ee7a ng\u00f4n ng\u1eef v\u00e0 n\u0103ng su\u1ea5t c\u1ee7a nh\u00e0 ph\u00e1t tri\u1ec3n. T\u1eeb API m\u00e1y kh\u00e1ch HTTP hi\u1ec7n \u0111\u1ea1i \u0111\u1ebfn c\u00e1c c\u1ea3i ti\u1ebfn API t\u1ec7p v\u00e0 chu\u1ed7i m\u1ea1nh m\u1ebd, nh\u1eefng c\u1eadp nh\u1eadt n\u00e0y l\u00e0m cho Java tr\u1edf th\u00e0nh m\u1ed9t n\u1ec1n t\u1ea3ng m\u1ea1nh m\u1ebd v\u00e0 hi\u1ec7u qu\u1ea3 h\u01a1n. M\u1eb7c d\u00f9 vi\u1ec7c lo\u1ea1i b\u1ecf c\u00e1c m\u00f4-\u0111un l\u1ed7i th\u1eddi v\u00e0 gi\u1edbi thi\u1ec7u c\u00e1c tr\u00ecnh thu gom r\u00e1c m\u1edbi nh\u01b0 Epsilon cho th\u1ea5y s\u1ef1 t\u1eadp trung r\u00f5 r\u00e0ng v\u00e0o hi\u1ec7u su\u1ea5t v\u00e0 hi\u1ec7n \u0111\u1ea1i h\u00f3a, nh\u01b0ng c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n n\u00ean t\u1eadn d\u1ee5ng nh\u1eefng thay \u0111\u1ed5i n\u00e0y \u0111\u1ec3 t\u1eadn d\u1ee5ng to\u00e0n b\u1ed9 ti\u1ec1m n\u0103ng c\u1ee7a Java 11.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>B\u1ea3ng v\u00e0 m\u00f4 t\u1ea3 chi ti\u1ebft:<\/strong> \u0110\u1ec3 cung c\u1ea5p s\u1ef1 hi\u1ec3u bi\u1ebft to\u00e0n di\u1ec7n h\u01a1n, d\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u00f4 t\u1ea3 chi ti\u1ebft v\u00e0 v\u00ed d\u1ee5 v\u1ec1 m\u1ed9t s\u1ed1 t\u00ednh n\u0103ng c\u00f3 b\u1ea3ng \u0111\u01b0\u1ee3c nh\u00fang:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">B\u1ea3ng c\u1ea3i ti\u1ebfn API chu\u1ed7i<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Ph\u01b0\u01a1ng ph\u00e1p<\/th><th>S\u1ef1 mi\u00eau t\u1ea3<\/th><th>V\u00ed d\u1ee5<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\">lines()<\/code><\/td><td>Chia chu\u1ed7i th\u00e0nh d\u00f2ng.<\/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>Lo\u1ea1i b\u1ecf kho\u1ea3ng tr\u1eafng \u1edf \u0111\u1ea7u v\u00e0 cu\u1ed1i.<\/td><td><code data-no-translation=\"\">text.strip()<\/code><\/td><\/tr><tr><td><code data-no-translation=\"\">stripLeading()<\/code><\/td><td>Lo\u1ea1i b\u1ecf kho\u1ea3ng tr\u1eafng h\u00e0ng \u0111\u1ea7u.<\/td><td><code data-no-translation=\"\">text.stripLeading()<\/code><\/td><\/tr><tr><td><code data-no-translation=\"\">stripTrailing()<\/code><\/td><td>Lo\u1ea1i b\u1ecf kho\u1ea3ng tr\u1eafng \u1edf cu\u1ed1i.<\/td><td><code data-no-translation=\"\">text.stripTrailing()<\/code><\/td><\/tr><tr><td><code data-no-translation=\"\">repeat(int)<\/code><\/td><td>L\u1eb7p l\u1ea1i chu\u1ed7i s\u1ed1 l\u1ea7n nh\u1ea5t \u0111\u1ecbnh.<\/td><td><code data-no-translation=\"\">\"=\".repeat(5)<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00e1c t\u00ednh n\u0103ng m\u1edbi c\u1ee7a Java 11 \u0111\u1ea3m b\u1ea3o r\u1eb1ng c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 quy\u1ec1n truy c\u1eadp v\u00e0o c\u00e1c c\u00f4ng c\u1ee5 v\u00e0 API hi\u1ec7n \u0111\u1ea1i, hi\u1ec7u qu\u1ea3, khi\u1ebfn n\u00f3 tr\u1edf th\u00e0nh m\u1ed9t b\u1ea3n n\u00e2ng c\u1ea5p c\u1ea7n thi\u1ebft cho b\u1ea5t k\u1ef3 d\u1ef1 \u00e1n ph\u00e1t tri\u1ec3n Java n\u00e0o.<\/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\/vi\/wp-json\/wp\/v2\/posts\/925546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/comments?post=925546"}],"version-history":[{"count":4,"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/posts\/925546\/revisions"}],"predecessor-version":[{"id":926504,"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/posts\/925546\/revisions\/926504"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/media\/925563"}],"wp:attachment":[{"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/media?parent=925546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/categories?post=925546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/proxyelite.info\/vi\/wp-json\/wp\/v2\/tags?post=925546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}