16 ãæã®éçºåŸãOracle 㯠Java SE 16 (Java Platform, Standard Edition 16) ããªãªãŒã¹ããŸãããããã¯ããªãŒãã³ãœãŒã¹ã® OpenJDK ãããžã§ã¯ãããªãã¡ã¬ã³ã¹å®è£ ãšããŠäœ¿çšããŸãã Java SE 16 ã¯ãJava ãã©ãããã©ãŒã ã®ä»¥åã®ãªãªãŒã¹ãšã®äžäœäºææ§ãç¶æããŠããã以åã«äœæããããã¹ãŠã® Java ãããžã§ã¯ãã¯ãæ°ããããŒãžã§ã³ã§èµ·åããŠãå€æŽãªãã§åäœããŸãã ããã«ã€ã³ã¹ããŒã«ã§ãã Java SE 86 ãã«ã (JDKãJREãããã³ Server JRE) ã¯ãLinux (x64_64ãAArch16)ãWindowsãããã³ macOS çšã«çšæãããŠããŸãã OpenJDK ãããžã§ã¯ãã«ãã£ãŠéçºããã Java 2 ãªãã¡ã¬ã³ã¹å®è£ ã¯ãGPLvXNUMX ã©ã€ã»ã³ã¹ã®äžã§å®å šã«ãªãŒãã³ ãœãŒã¹ã§ãããåçšè£œåãšã®åçãªã³ã¯ãå¯èœã«ãã GNU ClassPath äŸå€ããããŸãã
Java SE 16 ã¯äžè¬ãµããŒã ãªãªãŒã¹ãšããŠåé¡ãããŠããã次ã®ãªãªãŒã¹ãŸã§æŽæ°ãåãåãç¶ããŸãã Long Term Support (LTS) ãã©ã³ã㯠Java SE 11 ã§ããå¿ èŠãããã2026 幎ãŸã§ã¢ããããŒããåãåãç¶ããŸãã 次åã® LTS ãªãªãŒã¹ã¯ 2021 幎 10 æã«äºå®ãããŠããŸãã Java XNUMX ã®ãªãªãŒã¹ä»¥éããããžã§ã¯ãã¯æ°ããéçºããã»ã¹ã«åãæ¿ãããæ°ãããªãªãŒã¹ã®åœ¢æãµã€ã¯ã«ãççž®ãããããšãæå³ããŠããããšãæãåºããŠãã ããã æ°ããæ©èœã¯ãåžžã«æŽæ°ããã XNUMX ã€ã®ãã¹ã¿ãŒ ãã©ã³ãã§éçºãããããã«ãªããŸãããããã«ã¯æ¢è£œã®å€æŽãå«ãŸããŠãããæ°ãããªãªãŒã¹ãå®å®ãããããã« XNUMX ãæããšã«ãã©ã³ããããã©ã³ããäœæãããŸãã
æ°ãããªãªãŒã¹ã®æºåãšããŠãéçºã¯ Mercurial ããŒãžã§ã³ç®¡çã·ã¹ãã ãã Git ããã³ GitHub å ±åéçºãã©ãããã©ãŒã ã«ç§»è¡ããŸããã ãã®ç§»è¡ã«ããããªããžããªæäœã®ããã©ãŒãã³ã¹ãåäžããã¹ãã¬ãŒãžå¹çãåäžãããããžã§ã¯ãå±¥æŽå šäœã®å€æŽãžã®ã¢ã¯ã»ã¹ãæäŸãããã³ãŒã ã¬ãã¥ãŒã®ãµããŒããåäžããAPI ã«ããã¯ãŒã¯ãããŒã®èªååãå¯èœã«ãªãããšãæåŸ ãããŠããŸãã ããã«ãGit ãš GitHub ã䜿çšããããšã§ãåå¿è ã Git ã«æ £ããŠããéçºè ã«ãšã£ãŠãããžã§ã¯ããããé åçãªãã®ã«ãªããŸãã
Java 16 ã®æ°æ©èœã¯æ¬¡ã®ãšããã§ãã
- Vector API ã®å®è£ ãåããå®éšã¢ãžã¥ãŒã« jdk.incubator.vector ãè¿œå ããŸãããããã¯ãx86_64 ããã³ AArch64 ããã»ããµäžã®ãã¯ãã«åœä»€ã䜿çšããŠå®è¡ããããã¯ãã«èšç®ã®é¢æ°ãæäŸããæäœãè€æ°ã®å€ (SIMD) ã«åæã«é©çšã§ããããã«ããŸãã HotSpot JIT ã³ã³ãã€ã©ã§æäŸãããã¹ã«ã©ãŒæŒç®ã®èªåãã¯ãã«åæ©èœãšã¯å¯Ÿç §çã«ãæ°ãã API ã䜿çšãããšã䞊åããŒã¿åŠçã®ãã¯ãã«åãæ瀺çã«å¶åŸ¡ã§ããŸãã
- C++ ã§èšè¿°ããã JDK ããã³ VM HotSpot ã³ãŒãã¯ãC++14 ä»æ§ã§å°å ¥ãããæ©èœã䜿çšã§ããŸãã 以åã¯ãC++98/03 æšæºãèš±å¯ãããŠããŸããã
- ããã·ã ã¢ãŒãã§åäœããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã«ããé 延ãå¯èœãªéãæå°éã«æãã ZGC (Z ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ) ã¯ãã¢ããªã±ãŒã·ã§ã³ ã¹ã¬ãããäžæåæ¢ããã«ã¹ã¬ãã ã¹ã¿ãã¯ã䞊ååŠçããæ©èœãè¿œå ããŸããã ZGC ã«ã¯çŸåšãäžæåæ¢ãå¿ èŠãšããäœæ¥ã®ã¿ãå«ãŸããŠãããéåžžã¯æ°çŸãã€ã¯ãç§ãè¶ ããªãäžå®ã®é 延ãçºçããŸãã
- Unix ãœã±ãã (AF_UNIX) ã®ãµããŒãã SocketChannelãServerSocketChannelãããã³ java.nio.channels ã¯ã©ã¹ã«è¿œå ãããŸããã
- æšæº C ã©ã€ãã©ãª musl ã䜿çšãã Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ Alpine çšã®ããŒããå®è£ ãããŸãããããã¯ãã³ã³ãããŒããã€ã¯ããµãŒãã¹ãã¯ã©ãŠããããã³çµã¿èŸŒã¿ã·ã¹ãã ã®ç°å¢ã§äººæ°ããããŸãã ãã®ãããªç°å¢ã§ææ¡ãããŠããããŒãã䜿çšãããšãJava ããã°ã©ã ãéåžžã®ã¢ããªã±ãŒã·ã§ã³ãšåæ§ã«å®è¡ã§ããŸãã ããã«ãjlink ã䜿çšãããšãæªäœ¿çšã®ã¢ãžã¥ãŒã«ããã¹ãŠåé€ããã¢ããªã±ãŒã·ã§ã³ãå®è¡ããã®ã«ååãªæå°éã®ç°å¢ãäœæã§ããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³åºæã®ã³ã³ãã¯ããªã€ã¡ãŒãžãäœæã§ããŸãã
- Elastic Metaspace ã¡ã«ããºã ãå®è£ ãããJVM HotSpot ã®ã¯ã©ã¹ ã¡ã¿ããŒã¿ (ã¡ã¿ã¹ããŒã¹) ãå æããã¡ã¢ãªã®å²ãåœãŠãšè¿åŽã®æäœãæé©åãããŠããŸãã Elastic Metaspace ã䜿çšãããšãã¡ã¢ãªã®æçåãæžå°ããã¯ã©ã¹ ããŒããŒã®ãªãŒããŒããããåæžãããŸãããŸããæªäœ¿çšã®ã¯ã©ã¹ ã¡ã¿ããŒã¿ã«ãã£ãŠå æãããŠããã¡ã¢ãªããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«è¿ éã«è¿ããããããé·æéå®è¡ããããµãŒã㌠ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«ãæçãªå¹æããããŸãã ã¯ã©ã¹ã®ã¢ã³ããŒãåŸã«ã¡ã¢ãªè§£æŸã¢ãŒããéžæããã«ã¯ããªãã·ã§ã³ã-XX:MetaspaceReclaimPolicy=(balanced|aggressive|none)ããæäŸãããŸãã
- AArch64 ã¢ãŒããã¯ãã£ã«åºã¥ãããã»ããµãæèŒããããŒããŠã§ã¢ã§å®è¡ããã Windows ã·ã¹ãã çšã« JDK ããŒããè¿œå ãããŸããã
- å€éšã¡ã¢ãª ã¢ã¯ã»ã¹ API ã® XNUMX çªç®ã®ãã¬ãã¥ãŒãææ¡ãããŠãããæ°ãã MemorySegmentãMemoryAddressãããã³ MemoryLayout æœè±¡åãæäœããããšã§ãJava ã¢ããªã±ãŒã·ã§ã³ã Java ããŒãã®å€åŽã®ã¡ã¢ãªé åã«å®å šãã€å¹ççã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
- å®éšçãªå€éšãªã³ã«ãŒ API ãå®è£ ãããJava ãããã€ãã£ã ã³ãŒããžã®ã¢ã¯ã»ã¹ãæäŸãããŸããã æ°ããããã°ã©ãã³ã° ã€ã³ã¿ãŒãã§ã€ã¹ãšå€éšã¡ã¢ãª API ã䜵çšãããšãåŸæ¥ã®å ±æã©ã€ãã©ãªã«å¯Ÿããã©ãããŒã®äœæãã¯ããã«ç°¡åã«ãªããŸãã
- èªå·±å®çµå Java ã¢ããªã±ãŒã·ã§ã³ã®ããã±ãŒãžãäœæã§ãã jpackage ãŠãŒãã£ãªãã£ãè¿œå ãããŸããã ãã®ãŠãŒãã£ãªãã£ã¯ JavaFX ã® javapackager ã«åºã¥ããŠãããããŸããŸãªãã©ãããã©ãŒã (Windows ã®å Žå㯠msi ãš exeãmacOS ã®å Žå㯠pkg ãš dmgãLinux ã®å Žå㯠deb ãš rpm) ã®ãã€ãã£ã圢åŒã§ããã±ãŒãžãäœæã§ããŸãã ããã±ãŒãžã«ã¯ãå¿ èŠãªäŸåé¢ä¿ããã¹ãŠå«ãŸããŠããŸãã
- sun.misc.Unsafe ãªã©ã®éèŠãª API ãé€ãããã¹ãŠã® JDK å éšã®å³å¯ãªã«ãã»ã«åãããã©ã«ãã§æå¹ã«ãªã£ãŠããŸãã ã--illegal-accessããªãã·ã§ã³ã®å€ã¯ãããã©ã«ãã§ãèš±å¯ãã§ã¯ãªããæåŠãã«èšå®ãããããã«ãªããã³ãŒãããã»ãšãã©ã®å éšã¯ã©ã¹ãã¡ãœããããã£ãŒã«ãã«ã¢ã¯ã»ã¹ããè©Šã¿ããããã¯ãããŸãã å¶éãåé¿ããã«ã¯ãã-illegal-access=permitããªãã·ã§ã³ã䜿çšããŸãã
- ãinstanceofãæŒç®åã§ã®ãã¿ãŒã³ ãããã³ã°ã®å®è£ ãå®å®åãããããããã§ãã¯ãããå€ãåç §ããããŒã«ã«å€æ°ãããã«å®çŸ©ã§ããããã«ãªããŸããã ããšãã°ããString s = (String) objããæ瀺çã«å®çŸ©ããã«ããif (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}ããããã«æžãããšãã§ããŸãã if (obj instanceof Group) { Group group = (Group) obj; varãšã³ããªãŒ = group.getEntries(); ããã§ããGroup group = (Group) objããå®çŸ©ããã«å®è¡ã§ããããã«ãªããŸãã }
- ãrecordãããŒã¯ãŒãã®å®è£
ãå®å®åãããããŒã¿ãä¿åãããå Žåã«ãequals()ãhashCode()ãtoString() ãªã©ã®ããŸããŸãªäœã¬ãã« ã¡ãœãããæ瀺çã«å®çŸ©ããå¿
èŠããªããªããã¯ã©ã¹å®çŸ©ã®ã³ã³ãã¯ããªåœ¢åŒãæäŸãããŸãããã£ãŒã«ãå
ã®ã¿ã§ãããã¯å€ãããŸããã ã¯ã©ã¹ããequals()ãhashCode()ãããã³ toString() ã¡ãœããã®æšæºå®è£
ã䜿çšããå Žåãæ瀺çã«å®çŸ©ããªããŠãå®è¡ã§ããŸãã public Record BankTransaction(LocalDate date, double amount, String description) {}
ãã®å®£èšã«ãããã³ã³ã¹ãã©ã¯ã¿ãŒ ã¡ãœãããšã²ãã¿ãŒ ã¡ãœããã«å ããŠãequals()ãhashCode()ãããã³ toString() ã¡ãœããã®å®è£ ãèªåçã«è¿œå ãããŸãã
- XNUMX çªç®ã®ãã©ããã¯ãä»ã®ã¯ã©ã¹ãã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ãç¶æ¿ãæ¡åŒµããŸãã¯ãªãŒããŒã©ã€ãããããã«äœ¿çšã§ããªãã·ãŒã«ãããã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ã«å¯ŸããŠææ¡ãããŠããŸãã ã·ãŒã«ãããã¯ã©ã¹ã¯ãæ¡åŒµãèš±å¯ããããµãã¯ã©ã¹ãæ瀺çã«ãªã¹ãããããšã«åºã¥ããŠãã¢ã¯ã»ã¹ä¿®é£Ÿåãããã¹ãŒããŒã¯ã©ã¹ã®äœ¿çšãå¶éããããã®ãã宣èšçãªæ¹æ³ãæäŸããŸãã ããã±ãŒãž com.example.geometry; public sealed ã¯ã©ã¹ Shape ã¯ãcom.example.polar.Circleãcom.example.quad.Rectangleãcom.example.quad.simple.Square ãèš±å¯ããŸã {âŠ}
åºæïŒ ãªãŒãã³ããã.ru