{"id":375547,"date":"2024-05-21T06:27:17","date_gmt":"2024-05-21T06:27:17","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=375547"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=375547","title":{"rendered":"<span>Java Digest #12<\/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 loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cf9\/b7f\/654\/cf9b7f6546998f8f603591fcd4ae1077.png\" width=\"1561\" height=\"881\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cf9\/b7f\/654\/cf9b7f6546998f8f603591fcd4ae1077.png\"\/><\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! ? ? ?? \u041c\u044b \u2014 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0422\u0438\u043d\u044c\u043a\u043e\u0444\u0444: <a href=\"https:\/\/habr.com\/ru\/users\/evertimes\/\"><u>\u0410\u043d\u0434\u0440\u0435\u0439<\/u><\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/MuonKvark\/\"><u>\u0410\u0440\u0441\u0435\u043d\u0438\u0439<\/u><\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/maximovkl\/\"><u>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d<\/u><\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/kpolshchikov\/\"><u>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d.<\/u><\/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 \u043c\u0435\u0441\u044f\u0446\u0435 \u0432 \u043c\u0435\u043d\u044e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f: Intellij Idea \u0441 \u043c\u043e\u0434\u043d\u044b\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u043c \u0438 AI-\u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430\u043c\u0438, \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Spring Boot \u0437\u0430 \u043f\u0430\u0440\u0443 \u043a\u043b\u0438\u043a\u043e\u0432 \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Java on VS Code, \u043d\u0435 \u0437\u0430\u0431\u044b\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0438 Micronaut, GraalVm, PMD \u0438 JMC. \u041d\u0430 \u0433\u043e\u0440\u044f\u0447\u0435\u0435 JEP\u044b: Exception handling in switch, Derived Record Creation, Stream Gatherers, Vector API, String Templates. \u041d\u0435 \u0437\u0430\u0431\u044b\u043b\u0438 \u0438 \u043f\u0440\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0441\u044b\u0440 \u2014 \u0434\u043e\u0441\u0442\u0443\u043f \u043a Spring Academy Pro.\u00a0<\/p>\n<p>\u0423\u0442\u043e\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u043e\u0434 \u043f\u043e \u043d\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u043d\u0438\u044f\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u043c\u0438 \u0438 \u0432\u0438\u0434\u0435\u043e, \u0434\u043b\u044f \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u044d\u043a\u0437\u043e\u0442\u0438\u043a\u0438 \u2014 \u043d\u043e\u0432\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 bld. \u0410 \u043d\u0430 \u0434\u0435\u0441\u0435\u0440\u0442 \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u043c \u0441 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u0433\u043e Jpoint 2024.\u00a0<\/p>\n<h2>\u0413\u043b\u0430\u0432\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438<\/h2>\n<p><a href=\"https:\/\/www.infoq.com\/news\/2024\/04\/spring-academy-pro-free\/?topicPageSponsorship=b55b3fdf-5748-4996-a14f-7df76f82045f#:~:text=The%20Spring%20team%20has%20announced%20that%20the%20Pro%20Content%20from%20their%20Spring%20Academy%20will%20no%20longer%20require%20a%20paid%20subscription%2C%20effective%20April%205th%202024%2C%20to%20improve%20the%20learning%20experience%20for%20the%20Spring%20community.\"><u>Spring \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0443 Spring Academy Pro.<\/u><\/a> \u0421 5 \u0430\u043f\u0440\u0435\u043b\u044f 2024 \u0433\u043e\u0434\u0430 \u043f\u043b\u0430\u0442\u043d\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 Spring Academy \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u0430 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f.<\/p>\n<p><a href=\"https:\/\/micronaut.io\/2024\/04\/17\/micronaut-framework-4-4-0-released\/\"><u>MICRONAUT FRAMEWORK 4.4.0 RELEASED!<\/u><\/a> \u0424\u043e\u043d\u0434 Micronaut \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u0432\u0435\u0440\u0441\u0438\u044e 4.4.0 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Micronaut. \u0412 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 Micronaut Core, \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c, Micronaut OpenSearch, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 OpenSearch, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0434\u043e Kotlin 1.9.23 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 Micronaut.\u00a0<\/p>\n<p><a href=\"https:\/\/github.com\/graalvm\/graalvm-ce-builds\/releases\/tag\/jdk-22.0.1\"><u>GraalVM for JDK 22 Community 22.0.1.<\/u><\/a> \u0420\u0435\u043b\u0438\u0437 GraalVM \u0434\u043b\u044f JDK 22 Community 22.0.1 \u043e\u0442 Oracle Labs \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 Oracle \u0437\u0430 \u0430\u043f\u0440\u0435\u043b\u044c 2024 \u0433\u043e\u0434\u0430. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445: \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 NullPointerException \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 <abbr class=\"habraabbr\" title=\"JDWP\" data-title=\"&lt;p>JDWP&lt;\/p>&#187; data-abbr=&#187;Java Debug Wire Protocol &#171;>Java Debug Wire Protocol <\/abbr>\u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u043c tearDownIsolateOnShutdown(), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 IsolateAwareTruffleCompiler.\u00a0<\/p>\n<p><a href=\"https:\/\/inside.java\/2024\/04\/21\/sip096\/\"><u>What&#8217;s New in JMC 9? \u2014 Sip of Java.<\/u><\/a> \u041d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0435\u0434\u0440\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b JVM-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439? \u041d\u0430\u043c \u0442\u043e\u0436\u0435, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u0410 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 JDK 17 +, \u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JMC 9! \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 9-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u0418\u0437 \u0441\u0430\u043c\u043e\u0433\u043e \u0432\u0430\u0436\u043d\u043e\u0433\u043e \u2014 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0447\u0435\u0440\u043d\u0430\u044f \u0442\u0435\u043c\u0430 ?<\/p>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/04\/intellij-idea-2024-1\/\"><u>\u0412\u044b\u0448\u043b\u0430 Intellij IDEA 2024.1.<\/u><\/a> \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0444\u0438\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>Full line code completion \u2014 \u043e\u0434\u043d\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439. \u0422\u0435\u043f\u0435\u0440\u044c IDE \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0446\u0435\u043b\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0434\u0430 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f AI-\u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u0430 \u0432 \u043a\u043b\u0430\u0443\u0434\u0435. \u0412\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Ultimate-\u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0444\u0438\u0447 Java 22. \u0411\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 main-\u043c\u0435\u0442\u043e\u0434\u0430, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c super(&#8230;) \u2014 \u0432\u0441\u0435 \u044d\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f IDE. \u0410 \u0435\u0449\u0435 \u0432\u0442\u043e\u0440\u043e\u0435 \u0440\u0435\u0432\u044c\u044e String Template-\u043e\u0432 \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f ?<\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0432 IDE \u043c\u043d\u043e\u0433\u043e \u043a\u0440\u0443\u0442\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439: \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u043f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u043a\u043e\u043c\u0430\u043d\u0434, \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434, \u0430 \u0435\u0449\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0430 \u0431\u043b\u043e\u043a\u0438. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0448\u0438\u043a\u0430\u0440\u043d\u043e!<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435. \u041e\u0434\u043d\u0430 \u0438\u0437 \u0442\u0435\u0445 \u0444\u0438\u0447, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0443\u043c\u0430\u0435\u0448\u044c: \u00ab\u041a\u0430\u043a \u044f \u043c\u043e\u0433 \u0440\u0430\u043d\u044c\u0448\u0435 \u0431\u0435\u0437 \u043d\u0435\u0435 \u0436\u0438\u0442\u044c?\u00bb \u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u044b \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438\u043b\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0442\u0435\u0433\u0438 \u0432 xml.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\"><u>\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 What\u2019s New.<\/u><\/a><\/p>\n<p><a href=\"https:\/\/docs.pmd-code.org\/pmd-doc-7.0.0\/pmd_release_notes_pmd7.html\"><u>\u0412\u044b\u0448\u0435\u043b PMD 7<\/u><\/a> \u2014 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f Java, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0449\u0435 \u0438 \u0434\u043b\u044f Kotlin. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u043b\u043e\u0433\u043e;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 CLI;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Antlr;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 PMD Designer;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 Java 21 \u0438 22;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0432\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u2014 Kotlin \u0438 Swift;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 CPD \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u0434\u043b\u044f Apace VTL, Coco, Julia, TypeScript.<\/p>\n<\/li>\n<\/ul>\n<p><u>A preview of Jakarta Data 1.0<\/u> \u2014 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u0432 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 \u043e Jakarta Data \u043f\u0435\u0440\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e JEE11. \u0421\u0430\u043c\u0430 Jakarta Data \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 Spring Data, \u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0440\u044f\u0434 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0442\u0438\u043f\u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u0434\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u044f. <\/p>\n<p><a href=\"https:\/\/in.relation.to\/2024\/04\/01\/jakarta-data-1\/\"><u>\u041f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430<\/u><\/a> \u2014 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 \u0438 \u0430\u0432\u0442\u043e\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u0430 \u0435\u0449\u0435 \u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e <code>@Query<\/code>. <br \/><a href=\"https:\/\/in.relation.to\/2024\/04\/18\/jakarta-data-1\/\"><u>\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/u><\/a> \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0435\u0442\u0430\u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 Jakarta Persistence, \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043e\u043a \u0438 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Jakarta Data.<\/p>\n<p><a href=\"https:\/\/in.relation.to\/2024\/04\/16\/orm-70alpha1\/\"><u>\u0412\u044b\u0448\u043b\u0430 \u0430\u043b\u044c\u0444\u0430 \u043c\u0430\u0436\u043e\u0440\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Hibernate 7.0.0.Alpha1.<\/u><\/a> Jakarta Persistence 3.2, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Java \u0442\u0435\u043f\u0435\u0440\u044c 17, \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Hibernate Commons Annotations \u043d\u0430 Hibernate Models \u0438 \u0433\u0430\u0439\u0434 \u043f\u043e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/java-on-visual-studio-code-update-march-2024\/\"><u>Java on Visual Studio Code Update \u2014 March 2024.<\/u><\/a> \u041c\u0430\u0440\u0442\u043e\u0432\u0441\u043a\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 Java-\u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f VS Code \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u043e \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0433\u043e: <br \/>\u2014 \u0441\u043c\u0435\u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043b\u0435\u0442\u0443, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u0430\u0448\u0435 Spring-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e;<br \/>\u2014 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f \u043f\u0440\u044f\u043c\u043e \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435; <br \/>\u2014 \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043a\u0438\u043b\u043b\u0435\u0440-\u0444\u0438\u0447\u0430 \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u2014 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Spring Boot, \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432 \u043f\u0430\u0440\u0443 \u043a\u043b\u0438\u043a\u043e\u0432 \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u044f \u0438\u0437 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430.<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/459\"><u>Update on String Templates (JEP 459).<\/u><\/a> String Templates, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432 Java 22 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 second preview, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u0434\u0438\u0437\u0430\u0439\u043d \u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 JDK23, \u0434\u0430\u0436\u0435 \u0441 \u0444\u043b\u0430\u0433\u043e\u043c \u2013enable-preview.<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/8323658\"><u>JEP draft: Exception handling in switch<\/u><\/a>. \u0414\u0440\u0430\u0444\u0442 JEP, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0432 switch. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0435\u043d\u0435\u0435 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e switch, \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u0443\u044e \u0432 try-catch. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/p>\n<pre><code class=\"java\">switch(some()) { \u00a0\u00a0\u2026 \u00a0\u00a0case throws Exception e -> doSomthing(e); \u00a0\u00a0\u2026 }<\/code><\/pre>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/468\"><u>JEP 468: Derived Record Creation<\/u><\/a> \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0443\u0435\u0445\u0430\u043b \u0432 \u043f\u0440\u0435\u0432\u044c\u044e \u0444\u0438\u0447\u0438 Java 2023. <abbr class=\"habraabbr\" title=\"(\u0441) \u041a\u043e\u0441\u0442\u044f\" data-title=\"&lt;p>(\u0441) \u041a\u043e\u0441\u0442\u044f&lt;\/p>&#187; data-abbr=&#187;\u041a \u044d\u0442\u043e\u043c\u0443 JEP \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u044f, \u043d\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0441 with \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u043d\u043e\u0440\u043e\u0434\u043d\u043e \u0438 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e \u0432 Java.&#187;>\u041a \u044d\u0442\u043e\u043c\u0443 JEP \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u044f, \u043d\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0441 with \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u043d\u043e\u0440\u043e\u0434\u043d\u043e \u0438 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e \u0432 Java.<\/abbr> \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u2014 \u043a\u0430\u043a \u0441\u0435\u0439\u0447\u0430\u0441:<\/p>\n<pre><code class=\"java\">Point one = new Point(0, 0); Point two = new Point(one.x() + 2, one.y() * 10);<\/code><\/pre>\n<p>\u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442:<\/p>\n<pre><code class=\"java\">Point one = new Point(0, 0); Point two = one with { x += 2; y *= 10;};<\/code><\/pre>\n<p>\u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0433\u043a\u0430 \u043e\u0442\u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0442\u044c, \u043d\u043e \u043a\u043e\u0434 \u0432\u044b\u0440\u0430\u0441\u0442\u0435\u0442 \u0432\u043d\u0438\u0437:<\/p>\n<pre><code class=\"java\">  Point one = new Point(0, 0);   Point two = one with {        x += 2;        y *= 10;   };<\/code><\/pre>\n<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u043b\u044e\u0441\u043e\u0432 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u043f\u043e\u043b\u0435\u0439:<\/p>\n<pre><code class=\"java\"> Point one = new Point(0, 0);  Point two = one with { x += 2; };<\/code><\/pre>\n<p>\u00a0\u042d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442:<\/p>\n<pre><code class=\"java\">Point one = new Point(0, 0); Point two = new Point(one.x() + 2, one.y());<\/code><\/pre>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/35a\/3ef\/226\/35a3ef2268faa729f5035574659297ba.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/35a\/3ef\/226\/35a3ef2268faa729f5035574659297ba.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0441\u0442\u044f \u041f\u043e\u043b\u044c\u0449\u0438\u043a\u043e\u0432<\/h5>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0443 \u043f\u043e\u043b\u0435\u0439 \u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u043a\u0435, \u043d\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0439. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0435\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u0432\u0441\u0435, \u0442\u043e \u043e\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0439, \u0438\u043c\u0445\u043e. \u0427\u0442\u043e \u0432\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u044d\u0442\u043e\u0433\u043e JEP\u0430?<\/p>\n<\/div>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/473\"><u>JEP 473: Stream Gatherers (Second Preview).<\/u><\/a> JEP \u0443\u0436\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b \u043d\u0430\u0441 \u0432 \u043f\u0440\u0435\u0432\u044c\u044e 22 Java, \u0432 Java 23 \u043e\u043d \u0443\u0435\u0445\u0430\u043b \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. JEP \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 Stream API: \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043b\u0435\u0433\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u0417\u0432\u0443\u0447\u0438\u0442 \u043f\u0440\u0438\u044f\u0442\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0436\u0434\u0435\u043c \u0432\u0441\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0435\u0439 \ud83d\ude42<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/469\"><u>JEP 469: Vector API (Eighth Incubator).<\/u><\/a> \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043b\u0438\u0448\u043d\u0438\u0439 \u0440\u0430\u0437 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c, \u043d\u043e Vector API \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0431\u0438\u0442\u044c \u0440\u0435\u043a\u043e\u0440\u0434\u044b \u0438 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u0432\u043e\u0441\u044c\u043c\u043e\u0439 \u0440\u0430\u0437 \u0432 \u0438\u043d\u043a\u0443\u0431\u0430\u0442\u043e\u0440 \u0432 Java 23. \u0412\u0441\u0435 \u0435\u0449\u0435 \u0436\u0434\u0435\u043c Project Valhalla.<\/p>\n<h2>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u0438\u0434\u0435\u043e<\/h2>\n<p><a href=\"https:\/\/youtu.be\/_afECXGjfDI?si=CtjsGXb6i7fYD-GG\"><u>Java 23: Restoring the Balance with Primitive Patterns &#8212; Inside Java Newscast #66<\/u><\/a><u> <\/u>\u041d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u0432 Java? \u0412\u043e\u0442 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u2014 Primitive Patterns, \u0444\u0438\u0447\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 preview \u0432 Java 23. \u041c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432 instanceof \u0438 switch. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u0447\u0435\u043d\u044c \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u2014 \u0432 \u0432\u0438\u0434\u0435\u043e. \u0411\u043e\u043d\u0443\u0441\u043e\u043c \u0438\u0434\u0435\u0442 \u043e\u0431\u0437\u043e\u0440 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 Java.\u00a0<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6638dd33d1b5b66d8dc62340\" data-style=\"\" id=\"6638dd33d1b5b66d8dc62340\" width=\"\"><\/div>\n<p><a href=\"https:\/\/youtu.be\/tcihVdB7oU8?si=PkW2f-A4yTHBjg_d\"><u>Java Withers &#8212; Inside Java Newscast #67<\/u><\/a><u> <\/u>\u00ab\u041d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0441\u0442\u044c \u2014 \u044d\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e, \u043f\u043e\u043a\u0430 \u0442\u0435\u0431\u0435 \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c\u00bb ? \u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u043c\u043d\u043e\u0433\u0438\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0441 \u0431\u043e\u0439\u043b\u0435\u0440\u043f\u043b\u0435\u0439\u0442\u043e\u043c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438. \u0421\u0432\u044f\u0437\u0430\u043d \u043e\u043d, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e \u0445\u043e\u0434\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043d\u0430\u043c \u0442\u0430\u043a\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0432 \u043d\u0438\u0445 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c. <a href=\"https:\/\/openjdk.org\/jeps\/468\"><u>JEP 468<\/u><\/a> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041d\u043e\u0432\u043e\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e with \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0432 \u043a\u043e\u0434\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043e\u043f\u0438\u0438 record-\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439. \u041d\u043e, \u043f\u043e\u043c\u0438\u043c\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0431\u043e\u0439\u043b\u0435\u0440\u043f\u043b\u0435\u0439\u0442\u0430, \u044d\u0442\u0430 \u0444\u0438\u0447\u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 \u0432 \u0432\u0438\u0434\u0435\u043e.\u00a0\u00a0<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6638dd51315cc3d4a10dd1f8\" data-style=\"\" id=\"6638dd51315cc3d4a10dd1f8\" width=\"\"><\/div>\n<p><a href=\"https:\/\/youtu.be\/AgFOJEkBVjg?si=vynzFffekUeufpG_\"><u>Programmer&#8217;s Guide to JDK Flight Recorder<\/u><\/a><u> <\/u>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0439 JFR. \u0418\u0437 \u043d\u0435\u0433\u043e \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0438 \u0437\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d, \u043a\u0430\u043a \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438, \u043a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438 \u0434\u0430\u0436\u0435 \u043a\u0430\u043a \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430\u0445.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6638dd6b4c5bea9d8a412835\" data-style=\"\" id=\"6638dd6b4c5bea9d8a412835\" width=\"\"><\/div>\n<h2>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/04\/java-frameworks-you-must-know-in-2024\/\"><u>Java Frameworks You Must Know in 2024<\/u><\/a>\u00a0 \u0412  \u043f\u043e\u0441\u0442\u0435  \u043e\u0431\u0437\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 (\u0434\u0430, \u0442\u0430\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c\u0443 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0430, \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0447\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e.<\/p>\n<p><a href=\"https:\/\/foojay.io\/today\/ensuring-the-right-usage-of-java-21-new-features\/\"><u>Ensuring the right usage of Java 21 new features<\/u><\/a>\u00a0\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0441\u043e\u0432\u0435\u0442\u043e\u0432 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0444\u0438\u0447, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 Java 21. \u0421\u043e\u0432\u0435\u0442\u044b \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u043c API, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u0442\u043e\u043a\u0430\u043c \u0438 switch-\u0430\u043c. \u0427\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043b\u0435\u0433\u043a\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e, \u0430 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e.<\/p>\n<p><a href=\"https:\/\/spring.io\/blog\/2024\/04\/11\/spring-framework-6-2-0-m1-all-the-little-things\"><u>Spring Framework 6.2.0-M1: all the little things<\/u><\/a><u> <\/u>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0430, \u0433\u0434\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0444\u0438\u0447\u0438 Spring 6.2.0, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u044f\u043d\u0443\u0442 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b, \u043d\u043e \u043d\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u043d\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u043c\u0438. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445: \u0444\u043e\u043d\u043e\u0432\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0438\u043d\u043e\u0432, fallback-\u0431\u0438\u043d\u044b, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f MockMvc \u0441 AssertJ.<\/p>\n<p><a href=\"https:\/\/foojay.io\/today\/getting-started-with-bld\/\"><u>Getting started with bld<\/u><\/a><u>. <\/u>\u0421\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 bld \u2014 \u043d\u043e\u0432\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0435 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u0439 Java.\u00a0<\/p>\n<p><a href=\"https:\/\/piotrminkowski.com\/2024\/04\/25\/interesting-facts-about-java-streams-and-collections\/\"><u>Interesting Facts About Java Streams and Collections<\/u><\/a>\u00a0\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0441 \u043a\u0443\u0447\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u0444\u0430\u043a\u0442\u0430\u043c\u0438 \u043e \u0441\u0442\u0440\u0438\u043c\u0430\u0445 \u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445, \u043f\u0440\u0435\u0432\u044c\u044e \u0444\u0438\u0447\u0438 java 22, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0434\u043b\u044f Enum \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e.<\/p>\n<p><a href=\"https:\/\/javatechonline.com\/how-to-work-with-apache-kafka-in-spring-boot\/\"><u>How to work with Apache Kafka in Spring Boot?<\/u><\/a>\u00a0\u041e\u0431\u0437\u043e\u0440\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e Kafka. \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 API. \u0415\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437 SpringBoot-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u0438\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0441\u0432\u0435\u0436\u0438\u0442\u044c \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u2014 \u0441\u043c\u0435\u043b\u043e \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0441\u0442\u0430\u0442\u044c\u044e.<\/p>\n<h2>\u0414\u0436\u0430\u0432\u043e\u0432\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f<\/h2>\n<p><a href=\"https:\/\/jpoint.ru\/\"><u>JPoint 2024<\/u><\/a> 17 \u0430\u043f\u0440\u0435\u043b\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u043e\u043d\u043b\u0430\u0439\u043d-\u0447\u0430\u0441\u0442\u044c JPoint 2024, \u0430 24 \u0438 25 \u2014 \u043e\u0444\u043b\u0430\u0439\u043d. \u041f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0445 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430.\u00a0<\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438! \u0416\u0434\u0435\u043c \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 ?<\/p>\n<p><a href=\"https:\/\/polls.tinkoff.ru\/s\/clm0i20y6000701kf0k129nhn\">\u041f\u0440\u0438\u0441\u044b\u043b\u0430\u0439\u0442\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b<\/a>, \u0435\u0441\u043b\u0438 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u2014 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435! \u0410 \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u044f\u0446\u0435 \u0448\u043b\u0435\u043c \u043b\u0443\u0447\u0438 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u0438 <a class=\"mention\" href=\"\/users\/ivanvakhrushev\">@IvanVakhrushev<\/a><\/p>\n<\/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\/812663\/\"> https:\/\/habr.com\/ru\/articles\/812663\/<\/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! ? ? ?? \u041c\u044b \u2014 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0422\u0438\u043d\u044c\u043a\u043e\u0444\u0444: <a href=\"https:\/\/habr.com\/ru\/users\/evertimes\/\"><u>\u0410\u043d\u0434\u0440\u0435\u0439<\/u><\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/MuonKvark\/\"><u>\u0410\u0440\u0441\u0435\u043d\u0438\u0439<\/u><\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/maximovkl\/\"><u>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d<\/u><\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/kpolshchikov\/\"><u>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d.<\/u><\/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 \u043c\u0435\u0441\u044f\u0446\u0435 \u0432 \u043c\u0435\u043d\u044e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f: Intellij Idea \u0441 \u043c\u043e\u0434\u043d\u044b\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u043c \u0438 AI-\u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430\u043c\u0438, \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Spring Boot \u0437\u0430 \u043f\u0430\u0440\u0443 \u043a\u043b\u0438\u043a\u043e\u0432 \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Java on VS Code, \u043d\u0435 \u0437\u0430\u0431\u044b\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0438 Micronaut, GraalVm, PMD \u0438 JMC. \u041d\u0430 \u0433\u043e\u0440\u044f\u0447\u0435\u0435 JEP\u044b: Exception handling in switch, Derived Record Creation, Stream Gatherers, Vector API, String Templates. \u041d\u0435 \u0437\u0430\u0431\u044b\u043b\u0438 \u0438 \u043f\u0440\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0441\u044b\u0440 \u2014 \u0434\u043e\u0441\u0442\u0443\u043f \u043a Spring Academy Pro.\u00a0<\/p>\n<p>\u0423\u0442\u043e\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u043e\u0434 \u043f\u043e \u043d\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u043d\u0438\u044f\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u043c\u0438 \u0438 \u0432\u0438\u0434\u0435\u043e, \u0434\u043b\u044f \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u044d\u043a\u0437\u043e\u0442\u0438\u043a\u0438 \u2014 \u043d\u043e\u0432\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 bld. \u0410 \u043d\u0430 \u0434\u0435\u0441\u0435\u0440\u0442 \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u043c \u0441 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u0433\u043e Jpoint 2024.\u00a0<\/p>\n<h2>\u0413\u043b\u0430\u0432\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438<\/h2>\n<p><a href=\"https:\/\/www.infoq.com\/news\/2024\/04\/spring-academy-pro-free\/?topicPageSponsorship=b55b3fdf-5748-4996-a14f-7df76f82045f#:~:text=The%20Spring%20team%20has%20announced%20that%20the%20Pro%20Content%20from%20their%20Spring%20Academy%20will%20no%20longer%20require%20a%20paid%20subscription%2C%20effective%20April%205th%202024%2C%20to%20improve%20the%20learning%20experience%20for%20the%20Spring%20community.\"><u>Spring \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0443 Spring Academy Pro.<\/u><\/a> \u0421 5 \u0430\u043f\u0440\u0435\u043b\u044f 2024 \u0433\u043e\u0434\u0430 \u043f\u043b\u0430\u0442\u043d\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 Spring Academy \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u0430 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f.<\/p>\n<p><a href=\"https:\/\/micronaut.io\/2024\/04\/17\/micronaut-framework-4-4-0-released\/\"><u>MICRONAUT FRAMEWORK 4.4.0 RELEASED!<\/u><\/a> \u0424\u043e\u043d\u0434 Micronaut \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u0432\u0435\u0440\u0441\u0438\u044e 4.4.0 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Micronaut. \u0412 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 Micronaut Core, \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c, Micronaut OpenSearch, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 OpenSearch, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0434\u043e Kotlin 1.9.23 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 Micronaut.\u00a0<\/p>\n<p><a href=\"https:\/\/github.com\/graalvm\/graalvm-ce-builds\/releases\/tag\/jdk-22.0.1\"><u>GraalVM for JDK 22 Community 22.0.1.<\/u><\/a> \u0420\u0435\u043b\u0438\u0437 GraalVM \u0434\u043b\u044f JDK 22 Community 22.0.1 \u043e\u0442 Oracle Labs \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 Oracle \u0437\u0430 \u0430\u043f\u0440\u0435\u043b\u044c 2024 \u0433\u043e\u0434\u0430. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445: \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 NullPointerException \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 <abbr class=\"habraabbr\" title=\"JDWP\" data-title=\"&lt;p>JDWP&lt;\/p>&#187; data-abbr=&#187;Java Debug Wire Protocol &#171;>Java Debug Wire Protocol <\/abbr>\u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u043c tearDownIsolateOnShutdown(), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 IsolateAwareTruffleCompiler.\u00a0<\/p>\n<p><a href=\"https:\/\/inside.java\/2024\/04\/21\/sip096\/\"><u>What&#8217;s New in JMC 9? \u2014 Sip of Java.<\/u><\/a> \u041d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0435\u0434\u0440\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b JVM-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439? \u041d\u0430\u043c \u0442\u043e\u0436\u0435, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u0410 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 JDK 17 +, \u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JMC 9! \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 9-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u0418\u0437 \u0441\u0430\u043c\u043e\u0433\u043e \u0432\u0430\u0436\u043d\u043e\u0433\u043e \u2014 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0447\u0435\u0440\u043d\u0430\u044f \u0442\u0435\u043c\u0430 ?<\/p>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/04\/intellij-idea-2024-1\/\"><u>\u0412\u044b\u0448\u043b\u0430 Intellij IDEA 2024.1.<\/u><\/a> \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0444\u0438\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>Full line code completion \u2014 \u043e\u0434\u043d\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439. \u0422\u0435\u043f\u0435\u0440\u044c IDE \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0446\u0435\u043b\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0434\u0430 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f AI-\u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u0430 \u0432 \u043a\u043b\u0430\u0443\u0434\u0435. \u0412\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Ultimate-\u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0444\u0438\u0447 Java 22. \u0411\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 main-\u043c\u0435\u0442\u043e\u0434\u0430, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c super(&#8230;) \u2014 \u0432\u0441\u0435 \u044d\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f IDE. \u0410 \u0435\u0449\u0435 \u0432\u0442\u043e\u0440\u043e\u0435 \u0440\u0435\u0432\u044c\u044e String Template-\u043e\u0432 \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f ?<\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0432 IDE \u043c\u043d\u043e\u0433\u043e \u043a\u0440\u0443\u0442\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439: \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u043f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u043a\u043e\u043c\u0430\u043d\u0434, \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434, \u0430 \u0435\u0449\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0430 \u0431\u043b\u043e\u043a\u0438. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0448\u0438\u043a\u0430\u0440\u043d\u043e!<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435. \u041e\u0434\u043d\u0430 \u0438\u0437 \u0442\u0435\u0445 \u0444\u0438\u0447, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0443\u043c\u0430\u0435\u0448\u044c: \u00ab\u041a\u0430\u043a \u044f \u043c\u043e\u0433 \u0440\u0430\u043d\u044c\u0448\u0435 \u0431\u0435\u0437 \u043d\u0435\u0435 \u0436\u0438\u0442\u044c?\u00bb \u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u044b \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438\u043b\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0442\u0435\u0433\u0438 \u0432 xml.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\"><u>\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 What\u2019s New.<\/u><\/a><\/p>\n<p><a href=\"https:\/\/docs.pmd-code.org\/pmd-doc-7.0.0\/pmd_release_notes_pmd7.html\"><u>\u0412\u044b\u0448\u0435\u043b PMD 7<\/u><\/a> \u2014 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f Java, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0449\u0435 \u0438 \u0434\u043b\u044f Kotlin. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u043b\u043e\u0433\u043e;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 CLI;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Antlr;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 PMD Designer;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 Java 21 \u0438 22;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0432\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u2014 Kotlin \u0438 Swift;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 CPD \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u0434\u043b\u044f Apace VTL, Coco, Julia, TypeScript.<\/p>\n<\/li>\n<\/ul>\n<p><u>A preview of Jakarta Data 1.0<\/u> \u2014 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u0432 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 \u043e Jakarta Data \u043f\u0435\u0440\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e JEE11. \u0421\u0430\u043c\u0430 Jakarta Data \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 Spring Data, \u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0440\u044f\u0434 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0442\u0438\u043f\u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u0434\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u044f. <\/p>\n<p><a href=\"https:\/\/in.relation.to\/2024\/04\/01\/jakarta-data-1\/\"><u>\u041f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430<\/u><\/a> \u2014 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 \u0438 \u0430\u0432\u0442\u043e\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u0430 \u0435\u0449\u0435 \u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e <code>@Query<\/code>. <br \/><a href=\"https:\/\/in.relation.to\/2024\/04\/18\/jakarta-data-1\/\"><u>\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/u><\/a> \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0435\u0442\u0430\u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 Jakarta Persistence, \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043e\u043a \u0438 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Jakarta Data.<\/p>\n<p><a href=\"https:\/\/in.relation.to\/2024\/04\/16\/orm-70alpha1\/\"><u>\u0412\u044b\u0448\u043b\u0430 \u0430\u043b\u044c\u0444\u0430 \u043c\u0430\u0436\u043e\u0440\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Hibernate 7.0.0.Alpha1.<\/u><\/a> Jakarta Persistence 3.2, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Java \u0442\u0435\u043f\u0435\u0440\u044c 17, \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Hibernate Commons Annotations \u043d\u0430 Hibernate Models \u0438 \u0433\u0430\u0439\u0434 \u043f\u043e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/java-on-visual-studio-code-update-march-2024\/\"><u>Java on Visual Studio Code Update \u2014 March 2024.<\/u><\/a> \u041c\u0430\u0440\u0442\u043e\u0432\u0441\u043a\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 Java-\u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f VS Code \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u043e \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0433\u043e: <br \/>\u2014 \u0441\u043c\u0435\u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043b\u0435\u0442\u0443, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u0430\u0448\u0435 Spring-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e;<br \/>\u2014 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f \u043f\u0440\u044f\u043c\u043e \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435; <br \/>\u2014 \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043a\u0438\u043b\u043b\u0435\u0440-\u0444\u0438\u0447\u0430 \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u2014 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Spring Boot, \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432 \u043f\u0430\u0440\u0443 \u043a\u043b\u0438\u043a\u043e\u0432 \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u044f \u0438\u0437 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430.<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/459\"><u>Update on String Templates (JEP 459).<\/u><\/a> String Templates, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432 Java 22 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 second preview, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u0434\u0438\u0437\u0430\u0439\u043d \u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 JDK23, \u0434\u0430\u0436\u0435 \u0441 \u0444\u043b\u0430\u0433\u043e\u043c \u2013enable-preview.<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/8323658\"><u>JEP draft: Exception handling in switch<\/u><\/a>. \u0414\u0440\u0430\u0444\u0442 JEP, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0432 switch. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0435\u043d\u0435\u0435 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e switch, \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u0443\u044e \u0432 try-catch. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/p>\n<pre><code class=\"java\">switch(some()) { \u00a0\u00a0\u2026 \u00a0\u00a0case throws Exception e -> doSomthing(e); \u00a0\u00a0\u2026 }<\/code><\/pre>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/468\"><u>JEP 468: Derived Record Creation<\/u><\/a> \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0443\u0435\u0445\u0430\u043b \u0432 \u043f\u0440\u0435\u0432\u044c\u044e \u0444\u0438\u0447\u0438 Java 2023. <abbr class=\"habraabbr\" title=\"(\u0441) \u041a\u043e\u0441\u0442\u044f\" data-title=\"&lt;p>&lt;p>(\u0441) \u041a\u043e\u0441\u0442\u044f&lt;\/p>&#187; data-abbr=&#187;\u041a \u044d\u0442\u043e\u043c\u0443 JEP \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u044f, \u043d\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0441 with \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u043d\u043e\u0440\u043e\u0434\u043d\u043e \u0438 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e \u0432 Java.&#187;>\u041a \u044d\u0442\u043e\u043c\u0443 JEP \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u044f, \u043d\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0441 with \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u043d\u043e\u0440\u043e\u0434\u043d\u043e \u0438 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e \u0432 Java.<\/abbr> \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u2014 \u043a\u0430\u043a \u0441\u0435\u0439\u0447\u0430\u0441:<\/p>\n<pre><code class=\"java\">Point one = new Point(0, 0); Point two = new Point(one.x() + 2, one.y() * 10);<\/code><\/pre>\n<p>\u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442:<\/p>\n<pre><code class=\"java\">Point one = new Point(0, 0); Point two = one with { x += 2; y *= 10;};<\/code><\/pre>\n<p>\u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0433\u043a\u0430 \u043e\u0442\u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0442\u044c, \u043d\u043e \u043a\u043e\u0434 \u0432\u044b\u0440\u0430\u0441\u0442\u0435\u0442 \u0432\u043d\u0438\u0437:<\/p>\n<pre><code class=\"java\">  Point one = new Point(0, 0);   Point two = one with {        x += 2;        y *= 10;   };<\/code><\/pre>\n<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u043b\u044e\u0441\u043e\u0432 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u043f\u043e\u043b\u0435\u0439:<\/p>\n<pre><code class=\"java\"> Point one = new Point(0, 0);  Point two = one with { x += 2; };<\/code><\/pre>\n<p>\u00a0\u042d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442:<\/p>\n<pre><code class=\"java\">Point one = new Point(0, 0); Point two = new Point(one.x() + 2, one.y());<\/code><\/pre>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0441\u0442\u044f \u041f\u043e\u043b\u044c\u0449\u0438\u043a\u043e\u0432<\/h5>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0443 \u043f\u043e\u043b\u0435\u0439 \u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u043a\u0435, \u043d\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0439. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0435\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u0432\u0441\u0435, \u0442\u043e \u043e\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0439, \u0438\u043c\u0445\u043e. \u0427\u0442\u043e \u0432\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u044d\u0442\u043e\u0433\u043e JEP\u0430?<\/p>\n<\/div>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/473\"><u>JEP 473: Stream Gatherers (Second Preview).<\/u><\/a> JEP \u0443\u0436\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b \u043d\u0430\u0441 \u0432 \u043f\u0440\u0435\u0432\u044c\u044e 22 Java, \u0432 Java 23 \u043e\u043d \u0443\u0435\u0445\u0430\u043b \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. JEP \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 Stream API: \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043b\u0435\u0433\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u0417\u0432\u0443\u0447\u0438\u0442 \u043f\u0440\u0438\u044f\u0442\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0436\u0434\u0435\u043c \u0432\u0441\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0435\u0439 \ud83d\ude42<\/p>\n<p><a href=\"https:\/\/openjdk.org\/jeps\/469\"><u>JEP 469: Vector API (Eighth Incubator).<\/u><\/a> \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043b\u0438\u0448\u043d\u0438\u0439 \u0440\u0430\u0437 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c, \u043d\u043e Vector API \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0431\u0438\u0442\u044c \u0440\u0435\u043a\u043e\u0440\u0434\u044b \u0438 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u0432\u043e\u0441\u044c\u043c\u043e\u0439 \u0440\u0430\u0437 \u0432 \u0438\u043d\u043a\u0443\u0431\u0430\u0442\u043e\u0440 \u0432 Java 23. \u0412\u0441\u0435 \u0435\u0449\u0435 \u0436\u0434\u0435\u043c Project Valhalla.<\/p>\n<h2>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u0438\u0434\u0435\u043e<\/h2>\n<p><a href=\"https:\/\/youtu.be\/_afECXGjfDI?si=CtjsGXb6i7fYD-GG\"><u>Java 23: Restoring the Balance with Primitive Patterns &#8212; Inside Java Newscast #66<\/u><\/a><u> <\/u>\u041d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u0432 Java? \u0412\u043e\u0442 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u2014 Primitive Patterns, \u0444\u0438\u0447\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 preview \u0432 Java 23. \u041c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432 instanceof \u0438 switch. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u0447\u0435\u043d\u044c \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u2014 \u0432 \u0432\u0438\u0434\u0435\u043e. \u0411\u043e\u043d\u0443\u0441\u043e\u043c \u0438\u0434\u0435\u0442 \u043e\u0431\u0437\u043e\u0440 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 Java.\u00a0<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6638dd33d1b5b66d8dc62340\" data-style=\"\" id=\"6638dd33d1b5b66d8dc62340\" width=\"\"><\/div>\n<p><a href=\"https:\/\/youtu.be\/tcihVdB7oU8?si=PkW2f-A4yTHBjg_d\"><u>Java Withers &#8212; Inside Java Newscast #67<\/u><\/a><u> <\/u>\u00ab\u041d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0441\u0442\u044c \u2014 \u044d\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e, \u043f\u043e\u043a\u0430 \u0442\u0435\u0431\u0435 \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c\u00bb ? \u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u043c\u043d\u043e\u0433\u0438\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0441 \u0431\u043e\u0439\u043b\u0435\u0440\u043f\u043b\u0435\u0439\u0442\u043e\u043c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438. \u0421\u0432\u044f\u0437\u0430\u043d \u043e\u043d, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e \u0445\u043e\u0434\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043d\u0430\u043c \u0442\u0430\u043a\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0432 \u043d\u0438\u0445 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c. <a href=\"https:\/\/openjdk.org\/jeps\/468\"><u>JEP 468<\/u><\/a> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041d\u043e\u0432\u043e\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e with \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0432 \u043a\u043e\u0434\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043e\u043f\u0438\u0438 record-\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439. \u041d\u043e, \u043f\u043e\u043c\u0438\u043c\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0431\u043e\u0439\u043b\u0435\u0440\u043f\u043b\u0435\u0439\u0442\u0430, \u044d\u0442\u0430 \u0444\u0438\u0447\u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 \u0432 \u0432\u0438\u0434\u0435\u043e.\u00a0\u00a0<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6638dd51315cc3d4a10dd1f8\" data-style=\"\" id=\"6638dd51315cc3d4a10dd1f8\" width=\"\"><\/div>\n<p><a href=\"https:\/\/youtu.be\/AgFOJEkBVjg?si=vynzFffekUeufpG_\"><u>Programmer&#8217;s Guide to JDK Flight Recorder<\/u><\/a><u> <\/u>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0439 JFR. \u0418\u0437 \u043d\u0435\u0433\u043e \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0438 \u0437\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d, \u043a\u0430\u043a \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438, \u043a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438 \u0434\u0430\u0436\u0435 \u043a\u0430\u043a \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430\u0445.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6638dd6b4c5bea9d8a412835\" data-style=\"\" id=\"6638dd6b4c5bea9d8a412835\" width=\"\"><\/div>\n<h2>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/04\/java-frameworks-you-must-know-in-2024\/\"><u>Java Frameworks You Must Know in 2024<\/u><\/a>\u00a0 \u0412  \u043f\u043e\u0441\u0442\u0435  \u043e\u0431\u0437\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 (\u0434\u0430, \u0442\u0430\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c\u0443 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0430, \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0447\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e.<\/p>\n<p><a href=\"https:\/\/foojay.io\/today\/ensuring-the-right-usage-of-java-21-new-features\/\"><u>Ensuring the right usage of Java 21 new features<\/u><\/a>\u00a0\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0441\u043e\u0432\u0435\u0442\u043e\u0432 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0444\u0438\u0447, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 Java 21. \u0421\u043e\u0432\u0435\u0442\u044b \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u043c API, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u0442\u043e\u043a\u0430\u043c \u0438 switch-\u0430\u043c. \u0427\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043b\u0435\u0433\u043a\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e, \u0430 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e.<\/p>\n<p><a href=\"https:\/\/spring.io\/blog\/2024\/04\/11\/spring-framework-6-2-0-m1-all-the-little-things\"><u>Spring Framework 6.2.0-M1: all the little things<\/u><\/a><u> <\/u>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0430, \u0433\u0434\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0444\u0438\u0447\u0438 Spring 6.2.0, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u044f\u043d\u0443\u0442 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b, \u043d\u043e \u043d\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u043d\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u043c\u0438. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445: \u0444\u043e\u043d\u043e\u0432\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0438\u043d\u043e\u0432, fallback-\u0431\u0438\u043d\u044b, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f MockMvc \u0441 AssertJ.<\/p>\n<p><a href=\"https:\/\/foojay.io\/today\/getting-started-with-bld\/\"><u>Getting started with bld<\/u><\/a><u>. <\/u>\u0421\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 bld \u2014 \u043d\u043e\u0432\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0435 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u0439 Java.\u00a0<\/p>\n<p><a href=\"https:\/\/piotrminkowski.com\/2024\/04\/25\/interesting-facts-about-java-streams-and-collections\/\"><u>Interesting Facts About Java Streams and Collections<\/u><\/a>\u00a0\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0441 \u043a\u0443\u0447\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u0444\u0430\u043a\u0442\u0430\u043c\u0438 \u043e \u0441\u0442\u0440\u0438\u043c\u0430\u0445 \u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445, \u043f\u0440\u0435\u0432\u044c\u044e \u0444\u0438\u0447\u0438 java 22, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0434\u043b\u044f Enum \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e.<\/p>\n<p><a href=\"https:\/\/javatechonline.com\/how-to-work-with-apache-kafka-in-spring-boot\/\"><u>How to work with Apache Kafka in Spring Boot?<\/u><\/a>\u00a0\u041e\u0431\u0437\u043e\u0440\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e Kafka. \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 API. \u0415\u0441\u0442\u044c<\/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-375547","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/375547","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=375547"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/375547\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=375547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=375547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=375547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}