{"id":458617,"date":"2025-05-05T21:00:07","date_gmt":"2025-05-05T21:00:07","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=458617"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=458617","title":{"rendered":"<span>Java Digest #24<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6ee\/711\/fad\/6ee711fad70275cc1953f98ad47e0519.png\" width=\"780\" height=\"440\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/6ee\/711\/fad\/6ee711fad70275cc1953f98ad47e0519.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6ee\/711\/fad\/6ee711fad70275cc1953f98ad47e0519.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \ud83d\udc4b\ud83d\udc4b\ud83d\udc4b\ud83d\udc4b\ud83d\udc4b \u041c\u044b Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0422-\u0411\u0430\u043d\u043a\u0430: <a href=\"https:\/\/habr.com\/ru\/users\/evertimes\/\">\u0410\u043d\u0434\u0440\u0435\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/MuonKvark\/\">\u0410\u0440\u0441\u0435\u043d\u0438\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/roma00712\/\">\u0420\u043e\u043c\u0430\u043d<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/maximovkl\/\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/kpolshchikov\/\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d.<\/a> \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0441\u0442\u0430\u0442\u044c\u0438, \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0437 \u043c\u0438\u0440\u0430 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u044d\u0442\u0438\u043c \u0441\u043e \u0432\u0441\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e \u043d\u043e\u0432\u044b\u0445 JEPs \u0432 OpenJDK, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0448\u043b\u0438 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 Candidate. \u0421\u043f\u043e\u0439\u043b\u0435\u0440 Applet API \u2014 RIP. \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u044f\u0446\u0435 \u0432\u044b\u0448\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 IntelliJ IDEA 2025.1 \u0438 OpenIDE \u2014 \u044d\u0442\u0430 \u0431\u0438\u0442\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u0439!\u00a0<\/p>\n<p>\u041c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 JavaOne\u201925. \u0418, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438: \u043a\u0430\u043a \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 Flaky-\u0442\u0435\u0441\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JMina, \u043a\u0430\u043a ZGC \u0430\u043b\u043b\u043e\u0446\u0438\u0440\u0443\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c \u0432 \u0445\u0438\u043f\u0435. \u0421\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430\u0445 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0440\u0430\u0437\u0431\u0430\u0432\u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043a\u043e\u0434 \u0438 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u043c.\u00a0<\/p>\n<h2>\u0413\u043e\u0440\u044f\u0447\u0438\u0435 JEPs<\/h2>\n<p><strong>OpenJDK \u2014 8 \u043d\u043e\u0432\u044b\u0445 JEPs, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u043c\u0435\u0440\u0442\u044c Applet API. <\/strong>\u041d\u0430 \u043d\u0435\u0434\u0435\u043b\u0435 \u0441 14 \u0430\u043f\u0440\u0435\u043b\u044f \u0432 OpenJDK \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u043b \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0439 \u0430\u043f\u0434\u0435\u0439\u0442: \u0432\u043e\u0441\u0435\u043c\u044c JEPs \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u0438\u0437 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u043e\u0432 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 Candidate. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0430\u0434\u0438\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 JDK.<\/p>\n<p>\u0421\u0430\u043c\u044b\u0439 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u2014 <a href=\"https:\/\/openjdk.org\/jeps\/504\">JEP 504: Remove the Applet API.<\/a> Applet API \u0431\u044b\u043b \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u043a\u0430\u043a \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u0435\u0449\u0435 \u0432 JDK 17, \u0438 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c. <abbr class=\"habraabbr\" title=\"\u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\" data-title=\"&lt;p&gt;\u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442&lt;\/p&gt;\" data-abbr=\"Applets \u0443\u043c\u0435\u0440\u043b\u0438 \u0434\u0430\u0432\u043d\u043e,\">Applets \u0443\u043c\u0435\u0440\u043b\u0438 \u0434\u0430\u0432\u043d\u043e,<\/abbr> \u0442\u0430\u043a \u0447\u0442\u043e Java \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043f\u043e\u0434\u0447\u0438\u0449\u0430\u0435\u0442 \u0430\u0440\u0445\u0430\u0438\u043a\u0443.\u00a0<\/p>\n<p>\u041d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d <a href=\"https:\/\/openjdk.org\/jeps\/513\">JEP 513: Flexible Constructor Bodies<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c this \u0438 super \u0432 \u043b\u044e\u0431\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/openjdk.org\/jeps\/506\">JEP 506: Scoped Values<\/a> \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 ThreadLocal, \u043d\u043e \u043d\u0435 \u043f\u0440\u0438\u0439\u0442\u0438 \u0435\u043c\u0443 \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443.<\/p>\n<p>______________________________________________________________________________<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/8354672\"><strong>JEP draft: Compact Object Headers (Production)<\/strong><\/a> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e Compact Object Headers \u0438\u0437 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430 (\u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0432 JEP 450) \u0432 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e production-ready-\u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u0435\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0444\u043b\u0430\u0433 -XX:+UnlockExperimentalVMOptions. \u0421 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432 JDK 24 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u043e\u0431\u043a\u0430\u0442\u043a\u0443 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 Amazon (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0447\u0435\u0440\u0435\u0437 \u0431\u044d\u043a\u043f\u043e\u0440\u0442\u044b \u0432 JDK 21 \u0438 17). \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u0431\u0430\u0433\u0438, \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u043b\u044c\u0437\u0430. \u041f\u043e\u0440\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c \u0435\u0435 \u0437\u0440\u0435\u043b\u043e\u0439.\u200b\u00a0<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 JVM \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f \u0441 96\u2014128 \u0434\u043e 64 \u0431\u0438\u0442 \u043d\u0430 64-\u0431\u0438\u0442\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u0445. \u042d\u0442\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438, \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>______________________________________________________________________________<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/8354416\"><strong>JEP draft: Extend native memory tracking to the entirety of the JDK.<\/strong><\/a> \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Native Memory Tracking (NMT) \u043d\u0430 \u0432\u0435\u0441\u044c JDK. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043a\u0430\u043a \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 C-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0441\u0430\u043c\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b HotSpot, \u0442\u0430\u043a \u0438 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 JDK, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 FFM (Foreign Function &amp; Memory API).<\/p>\n<h2>\u0421\u0432\u0435\u0436\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u044b<\/h2>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2025\/04\/intellij-idea-2025-1\/\"><strong>IntelliJ IDEA 2025.1 Is Out!<\/strong><\/a><\/p>\n<p>Community:<\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u043e\u0438\u0445 AI-\u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043e\u0432 \u0437\u0430\u043d\u0435\u0441\u043b\u0438 \u043f\u043e\u0434 \u043e\u0434\u043d\u0443 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 Java 24.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Kotlin K2 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 Kotlin Notebooks. \u0421\u0430\u043c\u0430\u044f \u0431\u043b\u0438\u0437\u043a\u0430\u044f \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u0441 \u044d\u0442\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u2014 Google Colab, \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 Kotlin \u0432\u043c\u0435\u0441\u0442\u043e Python.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f Windows \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u043e\u043a\u043e\u043d \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u0430.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 Scala 3.<\/p>\n<\/li>\n<\/ul>\n<p>Ultimate:<\/p>\n<ul>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b Liquibase-\u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Spring-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432.\u00a0<\/p>\n<\/li>\n<li>\n<p>Containerfile \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c Docker \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Dockerfile.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u043a\u043e\u0440\u0438\u043b\u0438 WSL.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/spring_aio\/articles\/903856\/\"><strong>OpenIDE: \u043f\u0435\u0440\u0432\u0430\u044f \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Java 24.<\/strong><\/a><strong> <\/strong>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f open source IDE \u043d\u0430 \u0431\u0430\u0437\u0435 Intellij Idea. \u0423\u0434\u0430\u043b\u0438\u043b\u0438 \u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0438 JetBrains, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e, \u043f\u043e \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u044f\u043c, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u043b\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u043f\u043b\u0430\u0432\u043d\u0435\u0435, \u0430 \u0435\u0449\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u0443\u0434\u0430 \u0432\u0441\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430.\u00a0<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/651\/3c5\/f6f\/6513c5f6ff5046883f8e583df15070db.jpeg\" width=\"300\" height=\"169\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/651\/3c5\/f6f\/6513c5f6ff5046883f8e583df15070db.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/651\/3c5\/f6f\/6513c5f6ff5046883f8e583df15070db.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><a href=\"https:\/\/jakarta.ee\/specifications\/webprofile\/11\/\"><strong>Jakarta EE 11 Web Profile<\/strong><\/a> \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0432\u044b\u0448\u0435\u043b. \u042d\u0442\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0435\u043b\u0438\u0437\u0430 Jakarta EE 11 \u043f\u043e\u0441\u043b\u0435 Core Profile (\u0434\u0435\u043a\u0430\u0431\u0440\u044c 2024). \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441:<\/p>\n<ul>\n<li>\n<p>\u0424\u0438\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 Web Profile.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 GlassFish 8.0.0 \u043a\u0430\u043a \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 reference-\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0413\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c (WildFly, Open Liberty \u0438 \u0434\u0440.) \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u043c\u0435\u0441\u044f\u0446\u044b.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/spring-projects\/spring-framework\/releases\"><strong>\u0427\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439 milestone-\u0440\u0435\u043b\u0438\u0437 Spring Framework 7.0.0<\/strong><\/a> \u043f\u0440\u0438\u043d\u0435\u0441\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u043d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u041d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 OptionalToObjectConverter \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f Optional&lt;T&gt; \u0432 \u0435\u0433\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442.<\/p>\n<\/li>\n<li>\n<p>\u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 ClassFileMetadataReader, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 JEP 484 (Class-File API) \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 \u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0435 Java.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/softwaremill\/jox\/releases\/tag\/channels-v1.0.0\"><strong>\u0412\u044b\u0448\u0435\u043b \u0440\u0435\u043b\u0438\u0437 Jox 1.0.0<\/strong><\/a><strong> <\/strong>\u2014 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 Channel \u043d\u0430 Java, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435:<\/p>\n<ul>\n<li>\n<p>\u041c\u0430\u0441\u0441\u043e\u0432\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d \u043c\u0435\u0442\u043e\u0434 collectAsView() \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Source \u0438 \u043a\u043b\u0430\u0441\u0441\u0430 CollectSource, \u0442\u0430\u043a \u043a\u0430\u043a \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u043c Flows.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c Renovate \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/in.relation.to\/2025\/04\/10\/hibernate-reactive-3_0_0_Beta3\/\"><strong>\u0422\u0440\u0435\u0442\u0438\u0439 \u0431\u0435\u0442\u0430-\u0440\u0435\u043b\u0438\u0437 Hibernate Reactive 3.0.0<\/strong><\/a> \u043f\u043e\u0440\u0430\u0434\u0443\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u0432 upsertAll() \u0438 upsertMultiple() \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 StatelessSession \u0438\u0437 Hibernate ORM.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438 UnexpectedAccessToTheDatabase, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0435\u0439 \u043f\u0440\u0438 \u0441\u043b\u0438\u044f\u043d\u0438\u0438 (merge) \u043e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 @OneToMany \u0438\u043b\u0438 @ManyToMany.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0412\u044b\u0448\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 <\/strong><a href=\"https:\/\/tomcat.apache.org\/tomcat-11.0-doc\/changelog.html\"><strong>Tomcat 11.0.6<\/strong><\/a><strong> \u0438 <\/strong><a href=\"https:\/\/tomcat.apache.org\/tomcat-9.0-doc\/changelog.html\"><strong>Tomcat 9.0.104<\/strong><\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0441\u0443\u0442 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>Java Runtime \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 MD5 (Message-Digest Algorithm).<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 JsonErrorReportValve \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0449\u0438\u0449\u0435\u043d \u043e\u0442 NullPointerException.<\/p>\n<\/li>\n<li>\n<p>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 URL-\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0430 %nn \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 RewriteValve.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/langchain4j\/langchain4j\/releases\"><strong>\u0422\u0440\u0435\u0442\u0438\u0439 \u0431\u0435\u0442\u0430-\u0440\u0435\u043b\u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 LLM LangChain4j 1.0.0<\/strong><\/a><strong> <\/strong>\u043d\u0435\u0441\u0435\u0442 \u0432\u0430\u0436\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432 JSON-\u0441\u0445\u0435\u043c\u0430\u0445 Structured Outputs.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u0430 \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u0438 \u0432 Amazon Bedrock.<\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432: ChatModelRequest \u0438 ChatModelResponse.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/oracle\/javavscode\/releases\/tag\/v24.0.0\"><strong>Oracle Java Extension for Visual Studio Code Version 24.0.0 Is Now Available!<\/strong><\/a> \u041f\u0440\u043e\u0433\u0430\u0435\u0442\u0435 \u043d\u0430 VS Code \u043d\u0430 Java? \u0422\u043e\u0433\u0434\u0430 \u0432\u0430\u043c \u044d\u0442\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Java 24, \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u043b\u0438 \u0431\u0430\u0433\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431\u043e \u0432\u0441\u0435\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.<\/p>\n<p><a href=\"https:\/\/kora-projects.github.io\/kora-docs\/ru\/changelog\/changelog\/\"><strong>\u0412\u044b\u0448\u043b\u0438 \u0434\u0432\u0435 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Kora 1.24 \u0438 1.25.<\/strong><\/a><strong> <\/strong>\u0412 \u043d\u0438\u0445 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c:<\/p>\n<ul>\n<li>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432 \u0434\u043b\u044f Json \u0438 StringConverter \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 Kotlin-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0432 @ConfigSource.<\/p>\n<\/li>\n<li>\n<p>OpenAPI-\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 Enum \u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442.\u00a0<\/p>\n<\/li>\n<li>\n<p>OpenAPI-\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f Enum \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0432 SnakeCase-\u0444\u043e\u0440\u043c\u0430\u0442\u0435.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043e\u043f\u0446\u0438\u044f filterWithModels \u0432 OpenAPI \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043a\u043e\u0433\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 openapiNormalizer-\u043e\u043f\u0446\u0438\u044f FILTER.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043e\u043f\u0446\u0438\u044f prefixPath \u0432 OpenAPI \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 HTTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430.\u00a0<\/p>\n<\/li>\n<li>\n<p>OpenAPI-\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 HTTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 Kotlin.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043e\u043f\u0446\u0438\u0439 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0413\u043b\u0430\u0432\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438<\/h2>\n<p>Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 <strong>\u0433\u0440\u0430\u0444\u0438\u043a \u0432\u044b\u0445\u043e\u0434\u0430 JDK 25:<\/strong><\/p>\n<ul>\n<li>\n<p>Rampdown Phase One: 5 \u0438\u044e\u043d\u044f 2025.<\/p>\n<\/li>\n<li>\n<p>Final Release Candidate: 21 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 2025.<\/p>\n<\/li>\n<li>\n<p>General Availability: 16 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f 2025.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0440\u0430\u043d\u043d\u0438\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 JDK 25 (Build 17, 18 \u0438 19) \u0441 \u0431\u0430\u0433\u0444\u0438\u043a\u0441\u0430\u043c\u0438. \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c, \u0438\u0449\u0435\u043c \u0431\u0430\u0433\u0438 \u0438 \u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0438 <a href=\"https:\/\/bugs.java.com\/\">\u0432 Java Bug Database.<\/a><\/p>\n<h2>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u0438\u0434\u0435\u043e<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=XpunFFS-n8I&amp;list=PLX8CzqL3ArzVV1xRJkRbcM2tOgVwytJAi\">How Netflix Uses Java &#8212; 2025 Edition<\/a> \u0412\u044b\u0448\u043b\u0438 \u0432\u0441\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b \u0441 Java One. \u041e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u043c\u043d\u043e\u0433\u043e \u0444\u0438\u0447 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 Java. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0434\u043e\u043a\u043b\u0430\u0434 \u043f\u0440\u043e Stream Gathers. \u0421\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u0432\u0441\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0435.<\/p>\n<p>\u0412 <a href=\"https:\/\/youtu.be\/gjcWGDC_RuE?si=9htz0mRevOGIqKVj\">JavaOne&#8217;25 Highlights &#8212; Inside Java Newscast #89<\/a> \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043a\u043b\u0430\u0434\u0430\u0445 \u0438 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=mk_2MIWxLI0&amp;list=PLX8CzqL3ArzVV1xRJkRbcM2tOgVwytJAi&amp;index=1&amp;t=6264s\">\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0441 Dan Haidinga<\/a> \u043e \u0442\u0440\u0435\u043d\u0438\u043d\u0433\u0430\u0445 \u0434\u043b\u044f AOT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438 \u0438 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u043d\u0435 \u043b\u0443\u0447\u0448\u0430\u044f \u0438\u0434\u0435\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u043a\u043b\u0430\u0434 <a href=\"https:\/\/reg.rf.oracle.com\/flow\/oracle\/javaone25\/catalog\/page\/catalog\/session\/1734125338899001XcYL\">Garbage Collection in Java: The Performance Benefits of Upgrading<\/a> \u0441 \u0432\u0435\u0440\u0445\u043d\u0435\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c \u043e\u0431\u0437\u043e\u0440\u043e\u043c \u0432\u0441\u0435\u0445 GC OpenJDK.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0440\u044b\u0432\u043e\u043a \u0434\u043e\u043a\u043b\u0430\u0434\u0430 <a href=\"https:\/\/reg.rf.oracle.com\/flow\/oracle\/javaone25\/catalog\/page\/catalog\/session\/1725284504943001HBAP\">Apache Maven Survival Guide \u201eBring It On! \u2014 Mode\u201c<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d maven-\u044d\u043a\u0441\u0442\u0435\u043d\u0448\u0435\u043d\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0441 Mark Reynold \u043e \u0442\u043e\u043c, \u043a\u0430\u043a <a href=\"https:\/\/openjdk.org\/jeps\/8349536\">final \u0441\u0434\u0435\u043b\u0430\u044e\u0442 \u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 final.<\/a><\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0440\u044b\u0432\u043e\u043a \u0438\u0437 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 <a href=\"https:\/\/reg.rf.oracle.com\/flow\/oracle\/javaone25\/catalog\/page\/catalog\/session\/1725554001911001wH8f\">Next-Level Features of LangChain4j for Production-Ready AI Applications<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0430\u0432\u0442\u043e\u0440\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u043d\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 RAG-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0440\u043e\u0430\u0434\u043c\u0430\u043f\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Valhalla \u0438\u0437 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0411\u0440\u0430\u0439\u0430\u043d\u0430 \u0413\u0451\u0442\u0437\u0430 <a href=\"https:\/\/youtu.be\/1dY57CDxR14?si=zJvK5r8UxSbZAo1e\">Where is the Java language going?<\/a> \u041e\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0436\u0438\u0432\u043e \u0438 \u0441\u043a\u043e\u0440\u043e \u0432\u044b\u0439\u0434\u0435\u0442 \ud83d\ude01 <\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=4WjXTe_FKO4\">Finalizing the Java On-ramp &#8212; Inside Java Newscast #90<\/a> \u0412 \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0432 Java 25: \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435, \u0431\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u0430\u0445, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0432\u0432\u043e\u0434\u0435-\u0432\u044b\u0432\u043e\u0434\u0435 (JEP 445, 512) \u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 <a href=\"http:\/\/Learn.java\">Learn.java<\/a>. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0444\u0438\u0447\u0438, \u0430 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<h2>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/904952\/\"><strong>\u0418\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 Flaky-\u0442\u0435\u0441\u0442\u043e\u0432 \u0432 CI\/CD \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 JMina.<\/strong><\/a><strong> <\/strong>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u0432\u0442\u043e\u0440 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0439 \u0438\u043c JMina \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0435 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043b\u043e\u0433\u043e\u0432 (SLF4J) \u043f\u0440\u044f\u043c\u043e \u0432 \u0442\u0435\u0441\u0442\u0430\u0445. \u0421 \u0435\u0435 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e <abbr class=\"habraabbr\" title=\"\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043d\u0442\u0430 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435\" data-title=\"&lt;p&gt;\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043d\u0442\u0430 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435&lt;\/p&gt;\" data-abbr=\"\u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c asserts \u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430,\">\u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c asserts \u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430,<\/abbr> \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438 <abbr class=\"habraabbr\" title=\"\u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u043d\u0438\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u044d\u0442\u0438\u0445 \u043b\u043e\u0433\u043e\u0432\" data-title=\"&lt;p&gt;\u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u043d\u0438\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u044d\u0442\u0438\u0445 \u043b\u043e\u0433\u043e\u0432&lt;\/p&gt;\" data-abbr=\"\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u0432\u0441\u0435\u0445 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0445 \u043b\u043e\u0433\u043e\u0432.\">\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u0432\u0441\u0435\u0445 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0445 \u043b\u043e\u0433\u043e\u0432.<\/abbr> \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430, <abbr class=\"habraabbr\" title=\"\" data-title=\"&lt;p&gt;&lt;\/p&gt;\" data-abbr=\"race condition, \u0433\u0440\u044f\u0437\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e\">\u0440\u0430\u0437\u0431\u043e\u0440 \u0447\u0430\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d flaky-\u0442\u0435\u0441\u0442\u043e\u0432<\/abbr> \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0442\u043e\u0447\u0435\u0447\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0441\u0434\u0435\u043b\u0430\u044e\u0442 \u0442\u0435\u0441\u0442\u044b \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0435\u0435. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c, \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043b\u0438 \u043e\u0442 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0445 \u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0432 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0435 \u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u043a\u0430\u043a \u043f\u0440\u043e\u0444\u0438.<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/axiomjdk\/articles\/904928\/\"><strong>\u0412 \u0446\u0435\u043d\u0442\u0440\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u2014 Java: Local Variable Type Inference.<\/strong><\/a> \u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Axiom JDK \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u0442\u0438\u043f\u043e\u0432 \u0432 Java, \u043a\u043e\u0433\u0434\u0430 var \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u0434\u0430, \u0430 \u043a\u043e\u0433\u0434\u0430 \u0435\u0433\u043e \u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0432\u0430\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b 2019 \u0433\u043e\u0434\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0435\u043d \u0438 \u0432 2025: \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0411\u0440\u0430\u0439\u0430\u043d\u0430 \u0413\u0451\u0442\u0446\u0430 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u043e\u043c, \u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0441 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u043e\u0432 \u0438 \u043b\u044f\u043c\u0431\u0434\u0430\u043c\u0438 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u044f\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u0434\u0430, \u0430 \u0435\u0449\u0435 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043f\u043e\u0447\u0435\u043c\u0443 var \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043f\u043e\u0440\u044b \u0434\u0430\u0436\u0435 \u0441\u0440\u0435\u0434\u0438 \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.<\/p>\n<p><a href=\"https:\/\/joelsiks.com\/posts\/zgc-heap-memory-allocation\/\"><strong>How ZGC allocates memory for the Java heap.<\/strong><\/a> \u0421\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u0438 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430\u043c-\u043c\u0443\u0441\u043e\u0440\u0449\u0438\u043a\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u044f\u0442 \u0433\u043b\u0443\u0431\u0436\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0432 ZGC. \u0412 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a ZGC \u0432 OpenJDK 25 \u0431\u043e\u0440\u0435\u0442\u0441\u044f \u0441 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 Mapped Cache, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 NUMA-\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u043d\u043a\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043a\u0443\u0447\u0443 (\u0447\u0435\u0440\u0435\u0437 -Xms, -Xmx), \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0438 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c OutOfMemoryError \u0432 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445. \u042d\u0442\u043e must-read \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0432\u044b\u0436\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0438\u0437 ZGC \u0432 production.<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/896638\/\"><strong>\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.<\/strong><\/a> \u0410\u0432\u0442\u043e\u0440 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a: Retry, Circuit Breaker, Fallback, Timeout, \u0438\u0434\u0435\u043c\u043f\u043e\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0438 Bulkhead. \u041f\u043e\u043c\u0438\u043c\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0434\u0435\u0442\u0430\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 Java \u0438 Python. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0430\u0432\u0442\u043e\u0440 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043d\u0430 \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.\u00a0<\/p>\n<p><a href=\"https:\/\/blog.frankel.ch\/even-more-opentelemetry-kubernetes\/\"><strong>Even more OpenTelemetry \u2014 Kubernetes special.<\/strong><\/a> \u0412 \u044d\u0442\u043e\u043c \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c OpenTelemetry \u0432 Kubernetes. \u0412\u043e\u043e\u0431\u0449\u0435. \u0443 \u0430\u0432\u0442\u043e\u0440\u0430 \u0435\u0441\u0442\u044c <a href=\"https:\/\/github.com\/nfrankel\/opentelemetry-tracing\">\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442<\/a>, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 OpenTelemetry \u0432 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c!<\/p>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2025\/04\/a-practical-guide-to-testing-spring-controllers-with-mockmvctester\/\"><strong>A Practical Guide to Testing Spring Controllers With MockMvcTester.<\/strong><\/a> \u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d MockMvcTester \u2014 \u043e\u0431\u0435\u0440\u0442\u043a\u0435 \u043d\u0430\u0434 MockMvc \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 <a href=\"https:\/\/assertj.github.io\/doc\/\">AssertJ.<\/a>\u00a0<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2e8\/f74\/b9d\/2e8f74b9d394b072b9553ec3ce833226.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2e8\/f74\/b9d\/2e8f74b9d394b072b9553ec3ce833226.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2e8\/f74\/b9d\/2e8f74b9d394b072b9553ec3ce833226.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0441\u0442\u044f \u041c\u0430\u043a\u0441\u0438\u043c\u043e\u0432<\/h5>\n<p class=\"persona__text\">\u041f\u0443\u0448\u043a\u0430, \u0431\u043e\u043c\u0431\u0430! \u041a\u0442\u043e \u044e\u0437\u0430\u043b MockMvc \u0432 \u0442\u0435\u0441\u0442\u0430\u0445, \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u0430\u0441\u0441\u0435\u0440\u0442\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0442\u0435\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u2014 \u044d\u0442\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u0430\u044f \u0431\u043e\u043b\u044c. \u0422\u0435\u0441\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u043c\u0438 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438. MockMvcTester \u0434\u0430\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 API, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u043a\u043e\u0434. AssertJ one love!\u00a0<\/p>\n<\/div>\n<p><a href=\"https:\/\/foojay.io\/today\/async-file-io-with-java-and-io_uring\/\"><strong>Async IO with Java and Panama: Unlocking the Power of IO_uring.<\/strong><\/a> \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 Java \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430 \u0438 \u0432\u044b\u0432\u043e\u0434\u0430. \u0410\u0432\u0442\u043e\u0440 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0435\u0439 \u0438\u0437-\u0437\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 I\/O-\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u0430\u0445, \u0447\u0442\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0438\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f <abbr class=\"habraabbr\" title=\"\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Project Panama!\" data-title=\"&lt;p&gt;\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Project Panama!&lt;\/p&gt;\" data-abbr=\"\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 io_uring,\">\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 io_uring,<\/abbr> \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0432\u0432\u043e\u0434\u043e\u043c \u0438 \u0432\u044b\u0432\u043e\u0434\u043e\u043c.<\/p>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2025\/04\/markdown-in-java-docs-shut-up-and-take-my-comments\/\"><strong>Markdown in Java Docs? Shut Up and Take My Comments! | The IntelliJ IDEA Blog.<\/strong><\/a><strong> <\/strong>\u0421\u0442\u0430\u0442\u044c\u044f \u0432 \u0431\u043b\u043e\u0433\u0435 JetBrains \u043e Markdown java-docs, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0432 JDK 23. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u044d\u0442\u0438\u043c \u0444\u0438\u0447\u0438 \u0435\u0441\u0442\u044c \u0432 Intelij IDEA: \u0440\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u0440\u044b\u0445 java-doc \u0432 Markdown-\u0444\u043e\u0440\u043c\u0430\u0442.<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/spring_aio\/articles\/901302\/\"><strong>\u041a\u0430\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 Docker Image \u0434\u043b\u044f Spring-Boot-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f?<\/strong><\/a><strong> <\/strong>\u200b\u0421\u0442\u0430\u0442\u044c\u044f \u0432 \u0431\u043b\u043e\u0433\u0435 \u00abSpring \u0410\u0439\u041e\u00bb \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e Docker-\u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u043b\u044f Spring-Boot-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0410\u0432\u0442\u043e\u0440 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442, \u043a\u0430\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0441\u0431\u043e\u0438 \u0438\u043b\u0438 \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b. \u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0431\u043e\u044f, \u043c\u0435\u0442\u043e\u0434\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c GC-\u043b\u043e\u0433\u043e\u0432, Spring Boot Actuator \u0438 Java Flight Recorder. \u041e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0443\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 JVM \u0438 Docker \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043f\u043e\u043b\u0430\u0434\u043e\u043a.<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/spring_aio\/articles\/900930\/\"><strong>\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c JEP 491 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0414\u0435\u043d\u043e\u043c \u0412\u0435\u0433\u043e\u0439.<\/strong><\/a><strong> <\/strong>\u0415\u0449\u0435 \u043e\u0434\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0432 \u0431\u043b\u043e\u0433\u0435 \u00abSpring \u0410\u0439\u041e\u00bb \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0443 \u0441 JEP 491 \u2014 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432 Java 24. \u0420\u0430\u043d\u0435\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 synchronized \u043c\u043e\u0433\u043b\u0430 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u044f\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443, \u0447\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u043b\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c. \u0421 JEP 491 \u044d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0430: \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044e. \u0410 \u0442\u0430\u043a \u043b\u0438 \u044d\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \ud83d\ude42<\/p>\n<p><a href=\"https:\/\/mccue.dev\/pages\/4-5-25-go-http-server\"><strong>Go&#8217;s HTTP Server Patterns in Java 25.<\/strong><\/a><strong> <\/strong>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u0437\u044f\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0437 Go \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0430 Java. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 Java \u0431\u0435\u0437 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u0442\u043e \u043e\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0430\u0432\u0442\u043e\u0440\u0430 \u0431\u044b\u043b\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0435\u0431=\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 Java \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u043d\u0430 Go, \u0438 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0443 \u043d\u0435\u0433\u043e \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e9a\/5dd\/318\/e9a5dd318b677f690d894897c905840f.jpeg\" width=\"210\" height=\"266\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e9a\/5dd\/318\/e9a5dd318b677f690d894897c905840f.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e9a\/5dd\/318\/e9a5dd318b677f690d894897c905840f.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h2>\u041f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435<\/h2>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/903426\/\"><strong>\u041f\u0438\u0448\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043e\u0434.<\/strong><\/a><strong> <\/strong>\u041e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u043e\u0441\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \u043f\u043e \u0434\u0435\u043b\u0443. \u0412\u0441\u0435 \u043c\u044b \u043b\u044e\u0431\u0438\u043c \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0445\u043e\u0442\u0438\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u0435\u0449\u0438. \u041d\u043e \u043d\u0430\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 \u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043d\u0435 \u043a \u043c\u0435\u0441\u0442\u0443 \u043b\u0435\u0433\u043a\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 AI-\u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442. \u0418 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u00a0<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/900140\/\"><strong>GRASP: \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0441 SOLID.<\/strong><\/a><strong> <\/strong>\u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u043d\u0430 \u0442\u0435\u043c\u0443 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0430\u0432\u0442\u043e\u0440 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 \u0442\u0435\u043c\u0443 \u041e\u041e\u041f \u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a GRASP \u043a\u0430\u043a \u043a \u0441\u043f\u043e\u0441\u043e\u0431\u0443 \u043f\u0435\u0440\u0435\u043b\u043e\u0436\u0438\u0442\u044c \u044d\u0442\u043e \u0432\u0438\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u0434. \u0412\u0441\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0446\u0435\u043f\u043a\u0435 \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c. \u0410 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0441\u043e \u0437\u0434\u0440\u0430\u0432\u044b\u043c \u0441\u043c\u044b\u0441\u043b\u043e\u043c. \u041f\u0440\u043e\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u043c\u044b\u0441\u043b\u044c: \u0432\u0441\u0435 \u044d\u0442\u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043d\u0435 \u0434\u043e\u0433\u043c\u0430\u0442\u044b, \u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u043a\u043e\u0434 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c.<\/p>\n<p><a href=\"https:\/\/endler.dev\/2025\/best-programmers\/\"><strong>The Best Programmers I Know.<\/strong><\/a> \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u0432\u0442\u043e\u0440 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043e\u043d \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u0443 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c\u0438. \u041e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u0441\u044c \u0431\u044b\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u043c, \u043e\u0442\u0441\u044e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0435\u0440\u043f\u043d\u0443\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043c\u044b\u0441\u043b\u0435\u0439 \u043e \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u043a\u0430\u0440\u044c\u0435\u0440\u0435.<\/p>\n<h2>\u0414\u0436\u0430\u0432\u043e\u0432\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f<\/h2>\n<p><a href=\"https:\/\/meetup.tbank.ru\/conference\/jvm-day\/\"><strong>JVM Day<\/strong><\/a> \u043f\u0440\u043e\u0439\u0434\u0435\u0442 30 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 2025 \u0432 \u0448\u0442\u0430\u0431-\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 \u0422-\u0411\u0430\u043d\u043a\u0430 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435. \u0416\u0434\u0435\u043c \u043f\u043e\u0434\u0430\u0447\u0438 \u0437\u0430\u044f\u0432\u043e\u043a \u043d\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \ud83d\ude42<\/p>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2025\/04\/don-t-miss-intellij-idea-conf-2025\/\"><strong>Don\u2019t Miss IntelliJ IDEA Conf 2025!<\/strong><\/a><strong> <\/strong>\u2014<strong> <\/strong>\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u043e\u0442 JetBrains \u2014 \u043f\u0440\u043e\u0439\u0434\u0435\u0442 3 \u0438 4 \u0438\u044e\u043d\u044f.<\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435! \u0416\u0434\u0435\u043c \u0432\u0430\u0448\u0443 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445. \u0423\u0432\u0438\u0434\u0438\u043c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0441\u044f\u0446 \ud83d\ude09<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/906934\/\"> https:\/\/habr.com\/ru\/articles\/906934\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \ud83d\udc4b\ud83d\udc4b\ud83d\udc4b\ud83d\udc4b\ud83d\udc4b \u041c\u044b Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0422-\u0411\u0430\u043d\u043a\u0430: <a href=\"https:\/\/habr.com\/ru\/users\/evertimes\/\">\u0410\u043d\u0434\u0440\u0435\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/MuonKvark\/\">\u0410\u0440\u0441\u0435\u043d\u0438\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/roma00712\/\">\u0420\u043e\u043c\u0430\u043d<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/maximovkl\/\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/kpolshchikov\/\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d.<\/a> \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0441\u0442\u0430\u0442\u044c\u0438, \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0437 \u043c\u0438\u0440\u0430 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u044d\u0442\u0438\u043c \u0441\u043e \u0432\u0441\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e \u043d\u043e\u0432\u044b\u0445 JEPs \u0432 OpenJDK, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0448\u043b\u0438 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 Candidate. \u0421\u043f\u043e\u0439\u043b\u0435\u0440 Applet API \u2014 RIP. \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u044f\u0446\u0435 \u0432\u044b\u0448\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 IntelliJ IDEA 2025.1 \u0438 OpenIDE \u2014 \u044d\u0442\u0430 \u0431\u0438\u0442\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u0439!\u00a0<\/p>\n<p>\u041c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 JavaOne\u201925. \u0418, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438: \u043a\u0430\u043a \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 Flaky-\u0442\u0435\u0441\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JMina, \u043a\u0430\u043a ZGC \u0430\u043b\u043b\u043e\u0446\u0438\u0440\u0443\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c \u0432 \u0445\u0438\u043f\u0435. \u0421\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430\u0445 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0440\u0430\u0437\u0431\u0430\u0432\u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043a\u043e\u0434 \u0438 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u043c.\u00a0<\/p>\n<h2>\u0413\u043e\u0440\u044f\u0447\u0438\u0435 JEPs<\/h2>\n<p><strong>OpenJDK \u2014 8 \u043d\u043e\u0432\u044b\u0445 JEPs, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u043c\u0435\u0440\u0442\u044c Applet API. <\/strong>\u041d\u0430 \u043d\u0435\u0434\u0435\u043b\u0435 \u0441 14 \u0430\u043f\u0440\u0435\u043b\u044f \u0432 OpenJDK \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u043b \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0439 \u0430\u043f\u0434\u0435\u0439\u0442: \u0432\u043e\u0441\u0435\u043c\u044c JEPs \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u0438\u0437 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u043e\u0432 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 Candidate. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0430\u0434\u0438\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 JDK.<\/p>\n<p>\u0421\u0430\u043c\u044b\u0439 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u2014 <a href=\"https:\/\/openjdk.org\/jeps\/504\">JEP 504: Remove the Applet API.<\/a> Applet API \u0431\u044b\u043b \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u043a\u0430\u043a \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u0435\u0449\u0435 \u0432 JDK 17, \u0438 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c. <abbr class=\"habraabbr\" title=\"\u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\" data-title=\"&lt;p&gt;\u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442&lt;\/p&gt;\" data-abbr=\"Applets \u0443\u043c\u0435\u0440\u043b\u0438 \u0434\u0430\u0432\u043d\u043e,\">\u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e&lt;\/p&gt;&#187; data-abbr=&#187;Applets \u0443\u043c\u0435\u0440\u043b\u0438 \u0434\u0430\u0432\u043d\u043e,&#187;>Applets \u0443\u043c\u0435\u0440\u043b\u0438 \u0434\u0430\u0432\u043d\u043e,<\/abbr> \u0442\u0430\u043a \u0447\u0442\u043e Java \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043f\u043e\u0434\u0447\u0438\u0449\u0430\u0435\u0442 \u0430\u0440\u0445\u0430\u0438\u043a\u0443.\u00a0<\/p>\n<p>\u041d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d <a href=\"https:\/\/openjdk.org\/jeps\/513\">JEP 513: Flexible Constructor Bodies<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c this \u0438 super \u0432 \u043b\u044e\u0431\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/openjdk.org\/jeps\/506\">JEP 506: Scoped Values<\/a> \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 ThreadLocal, \u043d\u043e \u043d\u0435 \u043f\u0440\u0438\u0439\u0442\u0438 \u0435\u043c\u0443 \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443.<\/p>\n<p>______________________________________________________________________________<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/8354672\"><strong>JEP draft: Compact Object Headers (Production)<\/strong><\/a> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e Compact Object Headers \u0438\u0437 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430 (\u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0432 JEP 450) \u0432 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e production-ready-\u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u0435\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0444\u043b\u0430\u0433 -XX:+UnlockExperimentalVMOptions. \u0421 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432 JDK 24 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u043e\u0431\u043a\u0430\u0442\u043a\u0443 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 Amazon (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0447\u0435\u0440\u0435\u0437 \u0431\u044d\u043a\u043f\u043e\u0440\u0442\u044b \u0432 JDK 21 \u0438 17). \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u0431\u0430\u0433\u0438, \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u043b\u044c\u0437\u0430. \u041f\u043e\u0440\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c \u0435\u0435 \u0437\u0440\u0435\u043b\u043e\u0439.\u200b\u00a0<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 JVM \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f \u0441 96\u2014128 \u0434\u043e 64 \u0431\u0438\u0442 \u043d\u0430 64-\u0431\u0438\u0442\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u0445. \u042d\u0442\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438, \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>______________________________________________________________________________<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/8354416\"><strong>JEP draft: Extend native memory tracking to the entirety of the JDK.<\/strong><\/a> \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Native Memory Tracking (NMT) \u043d\u0430 \u0432\u0435\u0441\u044c JDK. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043a\u0430\u043a \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 C-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0441\u0430\u043c\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b HotSpot, \u0442\u0430\u043a \u0438 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 JDK, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 FFM (Foreign Function &amp; Memory API).<\/p>\n<h2>\u0421\u0432\u0435\u0436\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u044b<\/h2>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2025\/04\/intellij-idea-2025-1\/\"><strong>IntelliJ IDEA 2025.1 Is Out!<\/strong><\/a><\/p>\n<p>Community:<\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u043e\u0438\u0445 AI-\u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043e\u0432 \u0437\u0430\u043d\u0435\u0441\u043b\u0438 \u043f\u043e\u0434 \u043e\u0434\u043d\u0443 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 Java 24.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Kotlin K2 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 Kotlin Notebooks. \u0421\u0430\u043c\u0430\u044f \u0431\u043b\u0438\u0437\u043a\u0430\u044f \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u0441 \u044d\u0442\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u2014 Google Colab, \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 Kotlin \u0432\u043c\u0435\u0441\u0442\u043e Python.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f Windows \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u043e\u043a\u043e\u043d \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u0430.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 Scala 3.<\/p>\n<\/li>\n<\/ul>\n<p>Ultimate:<\/p>\n<ul>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b Liquibase-\u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Spring-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432.\u00a0<\/p>\n<\/li>\n<li>\n<p>Containerfile \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c Docker \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Dockerfile.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u043a\u043e\u0440\u0438\u043b\u0438 WSL.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/spring_aio\/articles\/903856\/\"><strong>OpenIDE: \u043f\u0435\u0440\u0432\u0430\u044f \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Java 24.<\/strong><\/a><strong> <\/strong>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f open source IDE \u043d\u0430 \u0431\u0430\u0437\u0435 Intellij Idea. \u0423\u0434\u0430\u043b\u0438\u043b\u0438 \u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0438 JetBrains, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e, \u043f\u043e \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u044f\u043c, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u043b\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u043f\u043b\u0430\u0432\u043d\u0435\u0435, \u0430 \u0435\u0449\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u0443\u0434\u0430 \u0432\u0441\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430.\u00a0<\/p>\n<figure class=\"\"><\/figure>\n<p><a href=\"https:\/\/jakarta.ee\/specifications\/webprofile\/11\/\"><strong>Jakarta EE 11 Web Profile<\/strong><\/a> \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0432\u044b\u0448\u0435\u043b. \u042d\u0442\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0435\u043b\u0438\u0437\u0430 Jakarta EE 11 \u043f\u043e\u0441\u043b\u0435 Core Profile (\u0434\u0435\u043a\u0430\u0431\u0440\u044c 2024). \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441:<\/p>\n<ul>\n<li>\n<p>\u0424\u0438\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 Web Profile.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 GlassFish 8.0.0 \u043a\u0430\u043a \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 reference-\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0413\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c (WildFly, Open Liberty \u0438 \u0434\u0440.) \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u043c\u0435\u0441\u044f\u0446\u044b.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/spring-projects\/spring-framework\/releases\"><strong>\u0427\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439 milestone-\u0440\u0435\u043b\u0438\u0437 Spring Framework 7.0.0<\/strong><\/a> \u043f\u0440\u0438\u043d\u0435\u0441\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u043d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u041d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 OptionalToObjectConverter \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f Optional&lt;T&gt; \u0432 \u0435\u0433\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442.<\/p>\n<\/li>\n<li>\n<p>\u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 ClassFileMetadataReader, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 JEP 484 (Class-File API) \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 \u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0435 Java.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/softwaremill\/jox\/releases\/tag\/channels-v1.0.0\"><strong>\u0412\u044b\u0448\u0435\u043b \u0440\u0435\u043b\u0438\u0437 Jox 1.0.0<\/strong><\/a><strong> <\/strong>\u2014 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 Channel \u043d\u0430 Java, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435:<\/p>\n<ul>\n<li>\n<p>\u041c\u0430\u0441\u0441\u043e\u0432\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d \u043c\u0435\u0442\u043e\u0434 collectAsView() \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Source \u0438 \u043a\u043b\u0430\u0441\u0441\u0430 CollectSource, \u0442\u0430\u043a \u043a\u0430\u043a \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u043c Flows.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c Renovate \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/in.relation.to\/2025\/04\/10\/hibernate-reactive-3_0_0_Beta3\/\"><strong>\u0422\u0440\u0435\u0442\u0438\u0439 \u0431\u0435\u0442\u0430-\u0440\u0435\u043b\u0438\u0437 Hibernate Reactive 3.0.0<\/strong><\/a> \u043f\u043e\u0440\u0430\u0434\u0443\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u0432 upsertAll() \u0438 upsertMultiple() \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 StatelessSession \u0438\u0437 Hibernate ORM.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438 UnexpectedAccessToTheDatabase, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0435\u0439 \u043f\u0440\u0438 \u0441\u043b\u0438\u044f\u043d\u0438\u0438 (merge) \u043e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 @OneToMany \u0438\u043b\u0438 @ManyToMany.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0412\u044b\u0448\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 <\/strong><a href=\"https:\/\/tomcat.apache.org\/tomcat-11.0-doc\/changelog.html\"><strong>Tomcat 11.0.6<\/strong><\/a><strong> \u0438 <\/strong><a href=\"https:\/\/tomcat.apache.org\/tomcat-9.0-doc\/changelog.html\"><strong>Tomcat 9.0.104<\/strong><\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0441\u0443\u0442 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>Java Runtime \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 MD5 (Message-Digest Algorithm).<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 JsonErrorReportValve \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0449\u0438\u0449\u0435\u043d \u043e\u0442 NullPointerException.<\/p>\n<\/li>\n<li>\n<p>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 URL-\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0430 %nn \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 RewriteValve.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/langchain4j\/langchain4j\/releases\"><strong>\u0422\u0440\u0435\u0442\u0438\u0439 \u0431\u0435\u0442\u0430-\u0440\u0435\u043b\u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 LLM LangChain4j 1.0.0<\/strong><\/a><strong> <\/strong>\u043d\u0435\u0441\u0435\u0442 \u0432\u0430\u0436\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432 JSON-\u0441\u0445\u0435\u043c\u0430\u0445 Structured Outputs.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u0430 \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u0438 \u0432 Amazon Bedrock.<\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432: ChatModelRequest \u0438 ChatModelResponse.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/oracle\/javavscode\/releases\/tag\/v24.0.0\"><strong>Oracle Java Extension for Visual Studio Code Version 24.0.0 Is Now Available!<\/strong><\/a> \u041f\u0440\u043e\u0433\u0430\u0435\u0442\u0435 \u043d\u0430 VS Code \u043d\u0430 Java? \u0422\u043e\u0433\u0434\u0430 \u0432\u0430\u043c \u044d\u0442\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Java 24, \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u043b\u0438 \u0431\u0430\u0433\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431\u043e \u0432\u0441\u0435\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.<\/p>\n<p><a href=\"https:\/\/kora-projects.github.io\/kora-docs\/ru\/changelog\/changelog\/\"><strong>\u0412\u044b\u0448\u043b\u0438 \u0434\u0432\u0435 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Kora 1.24 \u0438 1.25.<\/strong><\/a><strong> <\/strong>\u0412 \u043d\u0438\u0445 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c:<\/p>\n<ul>\n<li>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u043e\u0432 \u0434\u043b\u044f Json \u0438 StringConverter \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 Kotlin-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0432 @ConfigSource.<\/p>\n<\/li>\n<li>\n<p>OpenAPI-\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 Enum \u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442.\u00a0<\/p>\n<\/li>\n<li>\n<p>OpenAPI-\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f Enum \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0432 SnakeCase-\u0444\u043e\u0440\u043c\u0430\u0442\u0435.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043e\u043f\u0446\u0438\u044f filterWithModels \u0432 OpenAPI \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043a\u043e\u0433\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 openapiNormalizer-\u043e\u043f\u0446\u0438\u044f FILTER.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043e\u043f\u0446\u0438\u044f prefixPath \u0432 OpenAPI \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 HTTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430.\u00a0<\/p>\n<\/li>\n<li>\n<p>OpenAPI-\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 HTTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 Kotlin.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043e\u043f\u0446\u0438\u0439 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0413\u043b\u0430\u0432\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438<\/h2>\n<p>Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 <strong>\u0433\u0440\u0430\u0444\u0438\u043a \u0432\u044b\u0445\u043e\u0434\u0430 JDK 25:<\/strong><\/p>\n<ul>\n<li>\n<p>Rampdown Phase One: 5 \u0438\u044e\u043d\u044f 2025.<\/p>\n<\/li>\n<li>\n<p>Final Release Candidate: 21 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 2025.<\/p>\n<\/li>\n<li>\n<p>General Availability: 16 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f 2025.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0440\u0430\u043d\u043d\u0438\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 JDK 25 (Build 17, 18 \u0438 19) \u0441 \u0431\u0430\u0433\u0444\u0438\u043a\u0441\u0430\u043c\u0438. \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c, \u0438\u0449\u0435\u043c \u0431\u0430\u0433\u0438 \u0438 \u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0438 <a href=\"https:\/\/bugs.java.com\/\">\u0432 Java Bug Database.<\/a><\/p>\n<h2>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u0438\u0434\u0435\u043e<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=XpunFFS-n8I&amp;list=PLX8CzqL3ArzVV1xRJkRbcM2tOgVwytJAi\">How Netflix Uses Java &#8212; 2025 Edition<\/a> \u0412\u044b\u0448\u043b\u0438 \u0432\u0441\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b \u0441 Java One. \u041e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u043c\u043d\u043e\u0433\u043e \u0444\u0438\u0447 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 Java. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0434\u043e\u043a\u043b\u0430\u0434 \u043f\u0440\u043e Stream Gathers. \u0421\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u0432\u0441\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0435.<\/p>\n<p>\u0412 <a href=\"https:\/\/youtu.be\/gjcWGDC_RuE?si=9htz0mRevOGIqKVj\">JavaOne&#8217;25 Highlights &#8212; Inside Java Newscast #89<\/a> \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043a\u043b\u0430\u0434\u0430\u0445 \u0438 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=mk_2MIWxLI0&amp;list=PLX8CzqL3ArzVV1xRJkRbcM2tOgVwytJAi&amp;index=1&amp;t=6264s\">\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0441 Dan Haidinga<\/a> \u043e \u0442\u0440\u0435\u043d\u0438\u043d\u0433\u0430\u0445 \u0434\u043b\u044f AOT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438 \u0438 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u043d\u0435 \u043b\u0443\u0447\u0448\u0430\u044f \u0438\u0434\u0435\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u043a\u043b\u0430\u0434 <a href=\"https:\/\/reg.rf.oracle.com\/flow\/oracle\/javaone25\/catalog\/page\/catalog\/session\/1734125338899001XcYL\">Garbage Collection in Java: The Performance Benefits of Upgrading<\/a> \u0441 \u0432\u0435\u0440\u0445\u043d\u0435\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c \u043e\u0431\u0437\u043e\u0440\u043e\u043c \u0432\u0441\u0435\u0445 GC OpenJDK.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0440\u044b\u0432\u043e\u043a \u0434\u043e\u043a\u043b\u0430\u0434\u0430 <a href=\"https:\/\/reg.rf.oracle.com\/flow\/oracle\/javaone25\/catalog\/page\/catalog\/session\/1725284504943001HBAP\">Apache Maven Survival Guide \u201eBring It On! \u2014 Mode\u201c<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d maven-\u044d\u043a\u0441\u0442\u0435\u043d\u0448\u0435\u043d\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0441 Mark Reynold \u043e \u0442\u043e\u043c, \u043a\u0430\u043a <a href=\"https:\/\/openjdk.org\/jeps\/8349536\">final \u0441\u0434\u0435\u043b\u0430\u044e\u0442 \u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 final.<\/a><\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0440\u044b\u0432\u043e\u043a \u0438\u0437 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 <a href=\"https:\/\/reg.rf.oracle.com\/flow\/oracle\/javaone25\/catalog\/page\/catalog\/session\/1725554001911001wH8f\">Next-Level Features of LangChain4j for Production-Ready AI Applications<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0430\u0432\u0442\u043e\u0440\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u043d\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 RAG-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0440\u043e\u0430\u0434\u043c\u0430\u043f\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Valhalla \u0438\u0437 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0411\u0440\u0430\u0439\u0430\u043d\u0430 \u0413\u0451\u0442\u0437\u0430 <a href=\"https:\/\/youtu.be\/1dY57CDxR14?si=zJvK5r8UxSbZAo1e\">Where is the Java language going?<\/a> \u041e\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0436\u0438\u0432\u043e \u0438 \u0441\u043a\u043e\u0440\u043e \u0432\u044b\u0439\u0434\u0435\u0442 \ud83d\ude01 <\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=4WjXTe_FKO4\">Finalizing the Java On-ramp &#8212; Inside Java Newscast #90<\/a> \u0412 \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0432 Java 25: \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435, \u0431\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u0430\u0445, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0432\u0432\u043e\u0434\u0435-\u0432\u044b\u0432\u043e\u0434\u0435 (JEP 445, 512) \u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 <a href=\"http:\/\/Learn.java\">Learn.java<\/a>. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0444\u0438\u0447\u0438, \u0430 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<h2>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/904952\/\"><strong>\u0418\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 Flaky-\u0442\u0435\u0441\u0442\u043e\u0432 \u0432 CI\/CD \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 JMina.<\/strong><\/a><strong> <\/strong>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u0432\u0442\u043e\u0440 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0439 \u0438\u043c JMina \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0435 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043b\u043e\u0433\u043e\u0432 (SLF4J) \u043f\u0440\u044f\u043c\u043e \u0432 \u0442\u0435\u0441\u0442\u0430\u0445. \u0421 \u0435\u0435 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e <abbr class=\"habraabbr\" title=\"\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043d\u0442\u0430 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435\" data-title=\"&lt;p&gt;\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043d\u0442\u0430 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435&lt;\/p&gt;\" data-abbr=\"\u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c asserts \u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430,\">\u0430\u043d\u0442\u0430 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435&lt;\/p&gt;&#187; data-abbr=&#187;\u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c asserts \u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430,&#187;>\u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c asserts \u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430,<\/abbr> \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438 <abbr class=\"habraabbr\" title=\"\u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u043d\u0438\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u044d\u0442\u0438\u0445 \u043b\u043e\u0433\u043e\u0432\" data-title=\"&lt;p&gt;\u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u043d\u0438\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u044d\u0442\u0438\u0445 \u043b\u043e\u0433\u043e\u0432&lt;\/p&gt;\" data-abbr=\"\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u0432\u0441\u0435\u0445 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0445 \u043b\u043e\u0433\u043e\u0432.\">\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u044d\u0442\u0438\u0445 \u043b\u043e\u0433\u043e\u0432&lt;\/p&gt;&#187; data-abbr=&#187;\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u0432\u0441\u0435\u0445 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0445 \u043b\u043e\u0433\u043e\u0432.&#187;>\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u0432\u0441\u0435\u0445 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0445 \u043b\u043e\u0433\u043e\u0432.<\/abbr> \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430, <abbr class=\"habraabbr\" title=\"\" data-title=\"&lt;p&gt;&lt;\/p&gt;\" data-abbr=\"race condition, \u0433\u0440\u044f\u0437\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e\">\u0447\u0438 \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e&#187;>\u0440\u0430\u0437\u0431\u043e\u0440 \u0447\u0430\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d flaky-\u0442\u0435\u0441\u0442\u043e<\/abbr> \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0442\u043e\u0447\u0435\u0447\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0441\u0434\u0435\u043b\u0430\u044e\u0442 \u0442\u0435\u0441\u0442\u044b \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0435\u0435. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c, \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043b\u0438 \u043e\u0442 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0445 \u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0432 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0435 \u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u043a\u0430\u043a \u043f\u0440\u043e\u0444\u0438.<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/axiomjdk\/articles\/904928\/\"><strong>\u0412 \u0446\u0435\u043d\u0442\u0440\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u2014 Java: Local Variable Type Inference.<\/strong><\/a> \u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Axiom JDK \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u0442\u0438\u043f\u043e\u0432 \u0432 Java, \u043a\u043e\u0433\u0434\u0430 var \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u0434\u0430, \u0430 \u043a\u043e\u0433\u0434\u0430 \u0435\u0433\u043e \u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0432\u0430\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b 2019 \u0433\u043e\u0434\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0435\u043d \u0438 \u0432 2025: \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0411\u0440\u0430\u0439\u0430\u043d\u0430 \u0413\u0451\u0442\u0446\u0430 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u043e\u043c, \u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0441 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u043e\u0432 \u0438 \u043b\u044f\u043c\u0431\u0434\u0430\u043c\u0438 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u044f\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u0434\u0430, \u0430 \u0435\u0449\u0435 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043f\u043e\u0447\u0435\u043c\u0443 var \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043f\u043e\u0440\u044b \u0434\u0430\u0436\u0435 \u0441\u0440\u0435\u0434\u0438 \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.<\/p>\n<p><a href=\"https:\/\/joelsiks.com\/posts\/zgc-heap-memory-allocation\/\"><strong>How ZGC allocates memory for the Java heap.<\/strong><\/a> \u0421\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c \u0441<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-458617","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/458617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=458617"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/458617\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=458617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=458617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=458617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}