22 ãæã®éçºãçµãŠãOracle ã¯ãOpenJDK ãªãŒãã³ãœãŒã¹ ãããžã§ã¯ãããªãã¡ã¬ã³ã¹å®è£ ãšããŠäœ¿çšãã Java SE 22 (Java Platform, Standard Edition 22) ãã©ãããã©ãŒã ããªãªãŒã¹ããŸããã äžéšã®éæšå¥šæ©èœã®åé€ãé€ããJava SE 22 㯠Java ãã©ãããã©ãŒã ã®ä»¥åã®ãªãªãŒã¹ãšã®äžäœäºææ§ãç¶æããŸãã以åã«äœæããã Java ãããžã§ã¯ãã®ã»ãšãã©ã¯ãæ°ããããŒãžã§ã³ã§å®è¡ããŠãå€æŽãªãã§æ©èœããŸãã Java SE 86 (JDKãJREãããã³ Server JRE) ã®ã€ã³ã¹ããŒã«å¯èœãªãã«ãã¯ãLinux (x64_64ãAArch86)ãWindows (x64_86)ãããã³ macOS (x64_64ãAArch22) çšã«çšæãããŠããŸãã OpenJDK ãããžã§ã¯ãã«ãã£ãŠéçºããã Java 2 ãªãã¡ã¬ã³ã¹å®è£ ã¯ãåçšè£œåãžã®åçãªãªã³ã¯ãå¯èœã«ãã GNU ClassPath äŸå€ãå«ããGPLvXNUMX ã©ã€ã»ã³ã¹ã«åºã¥ãå®å šãªãªãŒãã³ ãœãŒã¹ã§ãã
Java SE 22 ã¯éåžžã®ãµããŒã ãªãªãŒã¹ãšããŠåé¡ãããŠããã次ã®ãªãªãŒã¹ãŸã§æŽæ°ãåãåãç¶ããŸãã Long Term Support (LTS) ãã©ã³ã㯠Java SE 21 ãŸã㯠Java SE 17 ã§ããå¿ èŠãããããããã 2031 幎㚠2029 幎ãŸã§ã¢ããããŒããåãåããŸã (é垞㯠2028 幎㚠2026 幎ãŸã§å©çšå¯èœ)ã Java SE 11ã®LTSãã©ã³ãã®ãããªãã¯ãµããŒãã¯æšå¹Ž2032æã«çµäºããŸãããã延é·ãµããŒãã¯8幎ãŸã§ç¶ç¶ãããŸãã Java SE 2030 ã® LTS ãã©ã³ãã®å»¶é·ãµããŒã㯠XNUMX 幎ãŸã§ç¶ç¶ãããŸãã
Java 10 ã®ãªãªãŒã¹ä»¥éããããžã§ã¯ãã¯æ°ããéçºããã»ã¹ã«åãæ¿ãããæ°ãããªãªãŒã¹ã®åœ¢æãµã€ã¯ã«ãççž®ãããããšãæå³ããŠããããšãæãåºããŠãã ãããæ°ããæ©èœã¯ãåžžã«æŽæ°ããã XNUMX ã€ã®ãã¹ã¿ãŒ ãã©ã³ãã§éçºãããããã«ãªããŸãããããã«ã¯æ¢è£œã®å€æŽãå«ãŸããŠãããæ°ãããªãªãŒã¹ãå®å®ãããããã« XNUMX ãæããšã«ãã©ã³ããããã©ã³ããäœæãããŸãã
Java 22 ã®æ°æ©èœã¯æ¬¡ã®ãšããã§ãã
- G1 ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã«ã¯ãé ååºå®ã®ãµããŒããå«ãŸããŠããŸããããã«ãããã¡ã¢ãªå ã® Java ãªããžã§ã¯ãã®äœçœ®ãäžæçã«åºå®ããŠãã¬ããŒãž ã³ã¬ã¯ã¿ãŒã«ãããªããžã§ã¯ãã®ç§»åãåé¿ãããããã®ãªããžã§ã¯ããžã®åç §ã Java ãšãã€ãã£ã ã³ãŒãã®éã§å®å šã«åãæž¡ãããšãã§ããããã«ãªããŸãããã³çãã«ãããJNI (Java Native Interface) ã®éèŠãªé åããã€ãã£ã ã³ãŒãã§å®è¡ãããšãã«ãã¬ã€ãã³ã·ãççž®ããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã®ç¡å¹åãåé¿ã§ããŸã (ãããã®ã»ã¯ã·ã§ã³ã®å®è¡äžã競åç¶æ ãé¿ããããã«ãJVM ã¯ãããã«é¢é£ä»ããããéèŠãªãªããžã§ã¯ãã移åããªãã§ãã ãã)ãåºå®ãããšéèŠãªãªããžã§ã¯ããã¬ããŒãž ã³ã¬ã¯ã¿ãŒã®èŠéããåé€ãããåºå®ãããŠããªãé åã®ã¯ãªãŒã³ã¢ãããç¶ç¶ã§ããŸãã
- super(...) ãåŒã³åºãåã«ã³ã³ã¹ãã©ã¯ã¿ãŒã§åŒãæå®ã§ããããã«ããäºåæ©èœãè¿œå ãããŸããããã®æ©èœã¯ãåŒãã³ã³ã¹ãã©ã¯ã¿ãŒã«ãã£ãŠäœæãããã€ã³ã¹ã¿ã³ã¹ãåç §ããŠããªãå Žåã«ãç¶æ¿ãããã¯ã©ã¹ ã³ã³ã¹ãã©ã¯ã¿ãŒãã芪ã¯ã©ã¹ ã³ã³ã¹ãã©ã¯ã¿ãŒãæ瀺çã«åŒã³åºãããã«äœ¿çšãããŸããã¯ã©ã¹ ã¢ãŠã¿ãŒ { void hello() { System.out.println("Hello"); } ã¯ã©ã¹å éš { Inner() { hello();çŽ æŽãããïŒïŒ; } } }
- FFM (Foreign Function & Memory) API ãå®å®åãããJNI (Java Native Interface) ã䜿çšããã«ãå€éšã©ã€ãã©ãªããé¢æ°ãåŒã³åºããããJVM ã®å€éšã®ã¡ã¢ãªã«ã¢ã¯ã»ã¹ãããããããšã§ãJava ããã°ã©ã ãšå€éšã³ãŒãããã³ããŒã¿ã®å¯Ÿè©±ãçµç¹åã§ããããã«ãªããŸããã ã
- ååã®ãªãå€æ°ãšãã¿ãŒã³ ãããã³ã°ã®ãµããŒããæå¹ã«ãªããŸãããåŒã³åºãæã«ãæªäœ¿çšã ãå¿ èŠãªå€æ°ããã¿ãŒã³ã®ä»£ããã«ãã_ãæåãæå®ã§ããããã«ãªããŸããã // 㯠String pageName = switch (page) { case GitHubIssuePage(var url, var content, var links, int issueNumber) -> âISSUE #â + issueNumber; ... }; // ããã§ã String pageName = switch (page) { case GitHubIssuePage(_, _, _, int issueNumber) -> âISSUE #â + issueNumber; ãå¯èœã«ãªããŸãã };
- Java ã¯ã©ã¹ ãã¡ã€ã«ã解æãçæãå€æããããã® Class-File API ã®æ«å®å®è£ ãææ¡ãããŠããŸããã¯ã©ã¹ãã¡ã€ã« cf = ã¯ã©ã¹ãã¡ã€ã«.of();ã¯ã©ã¹ã¢ãã« classModel = cf.parse(ãã€ã); byte[] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> { for (ClassElement ce : classModel) { if (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). startingWith("ãããã°"))) { classBuilder.with(ce); } } });
- Java ãŠãŒãã£ãªãã£ã¯ãããã€ãã®ã³ãŒã ãã¡ã€ã«ãŸãã¯ããªã³ã³ãã€ã«ãããã¯ã©ã¹ ã©ã€ãã©ãªã®åœ¢åŒã§æäŸããã Java ããã°ã©ã ãããããã®ãã¡ã€ã«ãåå¥ã«ã³ã³ãã€ã«ããããã«ã ã·ã¹ãã ãæ§æãããããã«å®è¡ããæ©èœãæäŸããŸãããã®æ°æ©èœã«ãããããŸããŸãªã¯ã©ã¹ã®ã³ãŒããåå¥ã®ãã¡ã€ã«ã«åé¢ãããããã°ã©ã ã®å®è¡ã容æã«ãªããŸãã Prog.java: ã¯ã©ã¹ Prog { public static void main(String[] args) { Helper.run(); Helper.java: ã¯ã©ã¹ Helper { static void run() { System.out.println("Hello!"); } }
ããšãã°ã2 ã€ã®ãã¡ã€ã«ãProg.javaããšãHelper.javaãã§æ§æãããããã°ã©ã ãå®è¡ããã«ã¯ããjava Prog.javaããå®è¡ããã ãã§ååã§ããããã«ãããProg ã¯ã©ã¹ãã³ã³ãã€ã«ãããHelper ã¯ã©ã¹ãžã®åç §ãå®çŸ©ãããŸãã Helper file.java ãèŠã€ããŠã³ã³ãã€ã«ããmain ã¡ãœãããåŒã³åºããŸãã
- æååãªãã©ã«ãšããã¹ã ãããã¯ã«å ããŠå®è£ ãããæååãã³ãã¬ãŒãã® 2 çªç®ã®äºåå®è£ ãè¿œå ããŸãããæååãã³ãã¬ãŒãã䜿çšãããšã+ æŒç®åã䜿çšããã«ããã¹ããèšç®åŒãå€æ°ãšçµã¿åãããããšãã§ããŸããåŒã®çœ®æã¯çœ®æ \{..} ã䜿çšããŠå®è¡ãããç¹å¥ãªãã³ãã©ãŒãæ¥ç¶ããŠçœ®æãããå€ã®æ£ç¢ºãããã§ãã¯ã§ããŸããããšãã°ãSQL ãšã³ãžã³ã¯ SQL ã³ãŒãã«çœ®æãããå€ããã§ãã¯ããåºåãšã㊠java.sql.Statement ãªããžã§ã¯ããè¿ããŸããäžæ¹ãJSON ããã»ããµã¯ JSON 眮æã®æ£ç¢ºããç£èŠããJsonNode ãè¿ããŸããæååã¯ãšãª = "SELECT * FROM 人 p WHERE p." + ãããã㣠+ " = '" + å€ + "'"; // ã¹ããŒãã¡ã³ã ã¯ãšãª = SQL ã§ããã"""SELECT * FROM Person p WHERE p.\{property} = '\{value}'"""; // ãªããŸãã
- Vector API ã® 86 çªç®ã®ãã¬ãã¥ãŒãè¿œå ãããx64_64 ããã³ AArchXNUMX ããã»ããµäžã®ãã¯ãã«åœä»€ã䜿çšããŠå®è¡ãããæäœãè€æ°ã®å€ (SIMD) ã«åæã«é©çšã§ãããã¯ãã«èšç®ã®é¢æ°ãæäŸãããŸãã HotSpot JIT ã³ã³ãã€ã©ã§æäŸãããã¹ã«ã©ãŒæŒç®ã®èªåãã¯ãã«åæ©èœãšã¯ç°ãªããæ°ãã API ã§ã¯äžŠåããŒã¿åŠçã®ãã¯ãã«åãæ瀺çã«å¶åŸ¡ã§ããŸãã
- ç¬èªã®äžéæäœã®å®çŸ©ããµããŒãããæ¡åŒµã¹ããªãŒã API ã®æ«å®å®è£ ãè¿œå ãããŸãããããã¯ãæ¢åã®çµã¿èŸŒã¿ã®äžéæäœã§ã¯ç®çã®ããŒã¿å€æã«ååã§ã¯ãªãå Žåã«åœ¹ç«ã¡ãŸãããã€ãã£ã ãã³ãã©ãŒã¯ãæ°ããäžéæäœ Stream::gather(Gatherer) ã䜿çšããŠæ¥ç¶ãããŸãããã®æäœã¯ããŠãŒã¶ãŒæå®ã®ãã³ãã©ãŒãã¹ããªãŒã èŠçŽ ã«é©çšããããšã«ãã£ãŠã¹ããªãŒã èŠçŽ ãåŠçããŸãã jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(new WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [4ã5ã6]ã[7ã8ã9]]
- æ§é ååæå®è¡ã®ããã®å®éšç㪠API ã® 2 çªç®ã®ããŒãžã§ã³ããã¹ãçšã«ææ¡ãããŠããŸããããã¯ãç°ãªãã¹ã¬ããã§å®è¡ãããè€æ°ã®ã¿ã¹ã¯ã 1 ã€ã®ãããã¯ãšããŠåŠçããããšã«ããããã«ãã¹ã¬ãã ã¢ããªã±ãŒã·ã§ã³ã®éçºãç°¡çŽ åããŸãã
- æé»çã«å®£èšãããã¯ã©ã¹ãšãmainãã¡ãœããã®ååã®ãªãã€ã³ã¹ã¿ã³ã¹ã® 2 çªç®ã®äºåå®è£ ãè¿œå ããŸãããããã«ãããpublic/static 宣èšãäžèŠã«ãªããåŒæ°ã®é åãã¯ã©ã¹å®£èšã«é¢é£ä»ãããããã®ä»ã®ãšã³ãã£ãã£ãæž¡ãããšãã§ããŸãã // public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } // ãã㧠void main() { System.out.println("Hello, World!"); }
- ã¹ã³ãŒãä»ãå€ã® 2 çªç®ã®ãã¬ãã¥ãŒå®è£ ãè¿œå ããŸãããããã«ãããäžå€ããŒã¿ãã¹ã¬ããéã§å ±æããããåã¹ã¬ããéã§ããŒã¿ãå¹ççã«äº€æãããã§ããããã«ãªããŸã (å€ã¯ç¶æ¿ãããŸã)ãã¹ã³ãŒãä»ãå€ã¯ãã¹ã¬ããããŒã«ã«å€æ°ã¡ã«ããºã ã眮ãæããããã«éçºãããŠãããéåžžã«å€æ°ã®ä»®æ³ã¹ã¬ãã (æ°åãŸãã¯æ°çŸäžã®ã¹ã¬ãã) ã䜿çšããå Žåã«ããå¹ççã§ããã¹ã³ãŒãä»ãã®å€ãšã¹ã¬ããããŒã«ã«å€æ°ã®äž»ãªéãã¯ãåè ã¯äžåºŠæžã蟌ãŸããå°æ¥å€æŽããããšãã§ãããã¹ã¬ããã®å®è¡äžã®ã¿äœ¿çšå¯èœãªãŸãŸã§ããããšã§ãã
- 䞊åã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ããªããžã§ã¯ãã®å€§èŠæš¡ãªé åãæäœãããšãã®ããã©ãŒãã³ã¹ãåäžããŸãããæé©åã«ããããªããžã§ã¯ãã®å€§èŠæš¡ãªé åã䜿çšããäžéšã®ãã¹ãã§ããªããžã§ã¯ãã®æ€çŽ¢ãéå§ãããŸã§ã®é 延ã 20% åæžããããšãå¯èœã«ãªããŸããã
ããã«ãã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹ JavaFX 22 ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãäœæããããã®ãã©ãããã©ãŒã ã®ã¢ããããŒããå
¬éãããããšã«ã泚ç®ããŠãã ããã
åºæïŒ ãªãŒãã³ããã.ru