17 ãæã®éçºãçµãŠãOracle ã¯ãOpenJDK ãªãŒãã³ãœãŒã¹ ãããžã§ã¯ãããªãã¡ã¬ã³ã¹å®è£ ãšããŠäœ¿çšãã Java SE 17 (Java Platform, Standard Edition 17) ãã©ãããã©ãŒã ããªãªãŒã¹ããŸããã äžéšã®éæšå¥šæ©èœã®åé€ãé€ããJava SE 17 㯠Java ãã©ãããã©ãŒã ã®ä»¥åã®ãªãªãŒã¹ãšã®äžäœäºææ§ãç¶æããŸãã以åã«äœæããã Java ãããžã§ã¯ãã®ã»ãšãã©ã¯ãæ°ããããŒãžã§ã³ã§å®è¡ããŠãå€æŽãªãã§æ©èœããŸãã Java SE 86 (JDKãJREãããã³ Server JRE) ã®ã€ã³ã¹ããŒã«å¯èœãªãã«ãã¯ãLinux (x64_64ãAArch86)ãWindows (x64_86)ãããã³ macOS (x64_64ãAArch17) çšã«çšæãããŠããŸãã OpenJDK ãããžã§ã¯ãã«ãã£ãŠéçºããã Java 2 ãªãã¡ã¬ã³ã¹å®è£ ã¯ãåçšè£œåãžã®åçãªãªã³ã¯ãå¯èœã«ãã GNU ClassPath äŸå€ãå«ããGPLvXNUMX ã©ã€ã»ã³ã¹ã«åºã¥ãå®å šãªãªãŒãã³ ãœãŒã¹ã§ãã
Java SE 17 ã¯é·æãµããŒã (LTS) ãªãªãŒã¹ãšããŠåé¡ãããŠããã2029 幎ãŸã§ã¢ããããŒããæäŸããç¶ããŸãã以åã® Java 16 ãã€ã«ã¹ããŒã³ ãªãªãŒã¹ã®æŽæ°ã¯äžæ¢ãããŸããã Java 11 ã®ä»¥åã® LTS ãã©ã³ã㯠2026 幎ãŸã§ãµããŒããããŸãã次åã® LTS ãªãªãŒã¹ã¯ 2024 幎 10 æã«äºå®ãããŠããŸãã Java XNUMX ã®ãªãªãŒã¹ä»¥éããããžã§ã¯ãã¯æ°ããéçºããã»ã¹ã«åãæ¿ãããæ°ãããªãªãŒã¹ã®åœ¢æãµã€ã¯ã«ãççž®ãããããšãæå³ããŠããããšãæãåºããŠãã ãããæ°ããæ©èœã¯ãåžžã«æŽæ°ããã XNUMX ã€ã®ãã¹ã¿ãŒ ãã©ã³ãã§éçºãããããã«ãªããŸãããããã«ã¯æ¢è£œã®å€æŽãå«ãŸããŠãããæ°ãããªãªãŒã¹ãå®å®ãããããã« XNUMX ãæããšã«ãã©ã³ããããã©ã³ããäœæãããŸãã
Java 17 ã®æ°æ©èœã¯æ¬¡ã®ãšããã§ãã
- ãswitchãåŒã§ã®ãã¿ãŒã³ãããã³ã°ã®å®éšçå®è£ ãææ¡ãããŠããŸããããã«ããããcaseãã©ãã«ã§æ£ç¢ºãªå€ã§ã¯ãªãã以åã¯é¢åãªå€ã䜿çšããå¿ èŠããã£ãäžé£ã®å€ãäžåºŠã«ã«ããŒããæè»ãªãã³ãã¬ãŒãã䜿çšã§ããããã«ãªããŸãã ãif...elseãåŒã®é£éãããã«ããswitchã㯠NULL å€ãåŠçããæ©èœãåããŠããŸãããªããžã§ã¯ã o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s);ããã©ã«ã -> o.toString(); };
- ã·ãŒã«ãããã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ã®å®å®ãããµããŒããä»ã®ã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ãç¶æ¿ãæ¡åŒµããŸãã¯ãªãŒããŒã©ã€ãããããã«ãããã䜿çšããããšã¯ã§ããŸãããã·ãŒã«ãããã¯ã©ã¹ã¯ãæ¡åŒµãèš±å¯ããããµãã¯ã©ã¹ãæ瀺çã«ãªã¹ãããããšã«åºã¥ããŠãã¢ã¯ã»ã¹ä¿®é£Ÿåãããã¹ãŒããŒã¯ã©ã¹ã®äœ¿çšãå¶éããããã®ãã宣èšçãªæ¹æ³ãæäŸããŸããããã±ãŒãž com.example.geometry; public sealed ã¯ã©ã¹ Shape ã¯ãcom.example.polar.Circleãcom.example.quad.Rectangleãcom.example.quad.simple.Square ãèš±å¯ããŸã {âŠ}
- Vector API ã® 86 çªç®ã®ãã¬ãã¥ãŒãææ¡ãããŠããŸããããã¯ãx64_64 ããã³ AArchXNUMX ããã»ããµäžã®ãã¯ãã«åœä»€ã䜿çšããŠå®è¡ããããã¯ãã«èšç®ã®é¢æ°ãæäŸããæäœãè€æ°ã®å€ (SIMD) ã«åæã«é©çšã§ããããã«ããŸãã HotSpot JIT ã³ã³ãã€ã©ã§æäŸãããã¹ã«ã©ãŒæŒç®ã®èªåãã¯ãã«åæ©èœãšã¯ç°ãªããæ°ãã API ã§ã¯äžŠåããŒã¿åŠçã®ãã¯ãã«åãæ瀺çã«å¶åŸ¡ã§ããŸãã
- å€éšé¢æ°ããã³ã¡ã¢ãª API ã®ãã¬ãã¥ãŒãè¿œå ããŸãããããã«ãããã¢ããªã±ãŒã·ã§ã³ã¯ Java ã©ã³ã¿ã€ã ã®å€éšã§ã³ãŒãããã³ããŒã¿ãšå¯Ÿè©±ã§ããããã«ãªããŸããæ°ãã API ã䜿çšãããšãé JVM é¢æ°ãå¹ççã«åŒã³åºããJVM 管ç以å€ã®ã¡ã¢ãªã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããããšãã°ãJNI ã䜿çšããã«ãå€éšå ±æã©ã€ãã©ãªããé¢æ°ãåŒã³åºããããã»ã¹ ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããŸãã
- Java 2D API ãé§åããããã« Swing API ãé§åãã macOS ã¬ã³ããªã³ã° ãšã³ãžã³ã¯ãMetal ã°ã©ãã£ãã¯ã¹ API ã䜿çšããããã«é©åãããŠããŸãã macOS ãã©ãããã©ãŒã ã¯åŒãç¶ãããã©ã«ã㧠OpenGL ã䜿çšããMetal ãµããŒããæå¹ã«ããã«ã¯ãã-Dsun.java2d.metal=trueããèšå®ããå°ãªããšã macOS 10.14.x ãå®è¡ããå¿ èŠããããŸãã
- macOS/AArch64 ãã©ãããã©ãŒã (æ°ãã Apple M1 ããããããŒã¹ã«ãã Apple ã³ã³ãã¥ãŒã¿ãŒ) çšã®ããŒããè¿œå ããŸããããã®ããŒãã®ç¹å¥ãªæ©èœã¯ãæžã蟌ã¿ãšå®è¡ã®ããã«ã¡ã¢ãª ããŒãžã«åæã«ã¢ã¯ã»ã¹ã§ããªã W^X (æžã蟌㿠XOR å®è¡) ã¡ã¢ãªä¿è·ã¡ã«ããºã ã®ãµããŒãã§ãã (ã³ãŒãã¯æžã蟌ã¿ãç¡å¹ã«ãªã£ãåŸã«ã®ã¿å®è¡ã§ããã¡ã¢ãª ããŒãžãžã®æžã蟌ã¿ã¯å®è¡ãç¡å¹ã«ãªã£ãåŸã«ã®ã¿å¯èœã«ãªããŸã)ã
- æµ®åå°æ°ç¹åŒã« strictfp ã»ãã³ãã£ã¯ã¹ã®ã¿ã䜿çšããããã«æ»ããŸããã Java 1.2 ã®ãªãªãŒã¹ä»¥æ¥å©çšå¯èœã§ãã£ããããã©ã«ããã»ãã³ãã£ã¯ã¹ã®ãµããŒãã¯ãéåžžã«å€ã x87 æ°åŠã³ããã»ããµãæèŒããã·ã¹ãã ã§ã®äœæ¥ã®ç°¡çŽ åãå«ããå»æ¢ãããŸãã (SSE2 åœä»€ã®åºçŸåŸãè¿œå ã®ã»ãã³ãã£ã¯ã¹ã®å¿ èŠæ§ã¯ãªããªããŸãã)ã
- æ¬äŒŒä¹±æ°ãžã§ãã¬ãŒã¿ãžã®æ°ããã¿ã€ãã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ãããä¹±æ°ãããé©åã«çæããããã«è¿œå ã®ã¢ã«ãŽãªãºã ãå®è£ ãããŸãããã¢ããªã±ãŒã·ã§ã³ã«ã¯ãæ¬äŒŒä¹±æ°ãçæããã¢ã«ãŽãªãºã ãéžæããæ©äŒãäžããããŸããã©ã³ãã ãªãªããžã§ã¯ã ã¹ããªãŒã ãçæããããã®ãµããŒããæ¹åãããŸããã
- sun.misc.Unsafe ãªã©ã®éèŠãª API ãé€ãããã¹ãŠã® JDK å éšã®å³å¯ãªã«ãã»ã«åã匷å¶ãããŸãããå³å¯ãªã«ãã»ã«åã«ãããã³ãŒãããã®å éšã¯ã©ã¹ãã¡ãœããããã£ãŒã«ããžã®ã¢ã¯ã»ã¹ã®è©Šã¿ããããã¯ãããŸãã以åã¯ãã--illegal-access=permitããªãã·ã§ã³ã䜿çšããŠå³å¯ãªã«ãã»ã«åã¢ãŒããç¡å¹ã«ããããšãã§ããŸããããããã¯éæšå¥šã«ãªããŸãããå éšã¯ã©ã¹ãã¡ãœãããããã³ãã£ãŒã«ããžã®ã¢ã¯ã»ã¹ãå¿ èŠãªã¢ããªã±ãŒã·ã§ã³ã¯ããããã§ã¹ã ãã¡ã€ã«ã® --add-opens ãªãã·ã§ã³ãŸã㯠Add-Opens å±æ§ã䜿çšããŠãããããæ瀺çã«å®çŸ©ããå¿ èŠããããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã«ã¯ãããŒã¿éã·ãªã¢ã«åãã£ã«ã¿ãŒãå®çŸ©ããæ©èœãäžããããŸããããã¯ãã³ã³ããã¹ãã«äŸåããç¹å®ã®éã·ãªã¢ã«åæäœã«åºã¥ããŠåçã«éžæã§ããŸããæå®ããããã£ã«ã¿ãŒã¯ãä»®æ³ãã·ã³å šäœ (JVM å šäœ) ã«é©çšãããŸããã¢ããªã±ãŒã·ã§ã³èªäœã ãã§ãªããã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããããµãŒãããŒãã£ã®ã©ã€ãã©ãªãã«ããŒããŸãã
- Swing ã«ã¯ã倧ããªã¢ã€ã³ã³ãããŒãããŠé« DPI ç»é¢ã® UI ãæ¹åãã javax.swing.filechooser.FileSystemView.getSystemIcon ã¡ãœãããè¿œå ãããŸããã
- java.net.DatagramSocket API ã¯ãå¥åã® java.net.MulticastSocket API ãå¿ èŠãšããã«ããã«ããã£ã¹ã ã°ã«ãŒããžã®æ¥ç¶ããµããŒãããŸãã
- IGV (Ideal Graph Visualizer) ãŠãŒãã£ãªãã£ãæ¹è¯ãããHotSpot VM C2 JIT ã³ã³ãã€ã©ãŒã§äžéã³ãŒãè¡šçŸã察話çã«èŠèŠåã§ããããã«ãªããŸããã
- JavaDoc ã§ã¯ãjavac ã³ã³ãã€ã©ãšåæ§ã«ããšã©ãŒãåºåããããšããœãŒã¹ ãã¡ã€ã«å ã§åé¡ã®ããè¡ã®çªå·ãšãšã©ãŒã®å Žæã瀺ãããããã«ãªããŸããã
- ã·ã¹ãã æåãšã³ã³ãŒãã£ã³ã° (UTF-8ãkoi8-rãcp1251 ãªã©) ã®ååãåæ ãããnative.encoding ããããã£ãè¿œå ããŸããã
- java.time.InstantSource ã€ã³ã¿ãŒãã§ãŒã¹ãè¿œå ãããã¿ã€ã ãŸãŒã³ãåç §ããã«æå»ãæäœã§ããããã«ãªããŸããã
- 16 é²è¡šçŸãžã®å€æããŸãã¯ãã®éã®ããã® java.util.HexFormat API ãè¿œå ããŸããã
- ãã©ãã¯ããŒã« ã¢ãŒããã³ã³ãã€ã©ã«è¿œå ãããããã ã³ãŒãã®é€å»æäœãç¡å¹ã«ãªããããã©ãŒãã³ã¹ ãã¹ãã®å®è¡æã«äœ¿çšã§ããŸãã
- éåæã¢ãŒãã§ãã°ãèšé²ããããã®ã-Xlog:asyncããªãã·ã§ã³ãã©ã³ã¿ã€ã ã«è¿œå ããŸããã
- å®å šãªæ¥ç¶ã確ç«ããå ŽåãTLS 1.3 ã¯ããã©ã«ãã§æå¹ã«ãªããŸã (以å㯠TLS 1.2 ã䜿çšãããŠããŸãã)ã
- 以åã«å»æ¢ããããšå®£èšãããããã©ãŠã¶ã§ Java ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããã«äœ¿çšãããŠããã¢ãã¬ãã API (java.applet.Applet*ãjavax.swing.JApplet) ã¯ãåé€äºå®ã®ã«ããŽãªã«ç§»åãããŸãã (ãµããŒãçµäºåŸã¯é¢é£æ§ã倱ãããŸã)ããã©ãŠã¶çšã® Java ãã©ã°ã€ã³ã®å Žå)ã
- Security Manager ã¯ãé·ãéãã®é¢é£æ§ã倱ãããã©ãŠã¶ ãã©ã°ã€ã³ã®ãµããŒãçµäºåŸã«èŠæ±ãããŠããªãããšãå€æããåé€äºå®ã®ã«ããŽãªã«ç§»åãããŸããã
- RMI ã¢ã¯ãã£ããŒã·ã§ã³ ã¡ã«ããºã ã¯åé€ãããŸããããããã¯æ代é ãã§ãJava 8 ã®ãªãã·ã§ã³ã®ã«ããŽãªã«è¿œãããããŠãããçŸä»£ã®å®è·µã§ã¯ã»ãšãã©äœ¿çšãããŠããŸããã
- HotSpot JVM ã® Java ã³ãŒããåçã«ã³ã³ãã€ã«ããããã® JIT (ãžã£ã¹ãã€ã³ã¿ã€ã ) ãšãä»®æ³ãã·ã³ãèµ·åããåã«ã¯ã©ã¹ããã·ã³ ã³ãŒãã«äºæž¬ã³ã³ãã€ã« (AOTãäºåã³ã³ãã€ã«) ããã¢ãŒãããµããŒãããå®éšçãªã³ã³ãã€ã©ãŒã¯ SDK ããåé€ãããŸãããã³ã³ãã€ã©ã¯ Java ã§æžãããGraal ãããžã§ã¯ãã®ææã«åºã¥ããŠããŸããã³ã³ãã€ã©ã®ã¡ã³ããã³ã¹ã«ã¯å€å€§ãªåŽåãå¿ èŠã§ãããéçºè ããã®èŠæ±ããªãå Žåã«ã¯ããããæ£åœåãããªãããšã«æ³šæããŠãã ããã
åºæïŒ ãªãŒãã³ããã.ru