XNUMX ãæã®éçºæéãçµãŠãOracle
Java SE 14 ã¯äžè¬ãµããŒã ãªãªãŒã¹ãšããŠåé¡ãããŠããã次ã®ãªãªãŒã¹ãŸã§æŽæ°ãåãåãç¶ããŸãã Long Term Support (LTS) ãã©ã³ã㯠Java SE 11 ã§ããå¿ èŠãããã2026 幎ãŸã§ã¢ããããŒããåãåãç¶ããŸãã Java 8 ã®ä»¥åã® LTS ãã©ã³ãã¯ã2020 幎 2021 æãŸã§ãµããŒããããŸãã 次åã® LTS ãªãªãŒã¹ã¯ 10 幎 XNUMX æã«äºå®ãããŠããŸãã Java XNUMX ã®ãªãªãŒã¹ä»¥éããããžã§ã¯ãã¯æ°ããéçºããã»ã¹ã«åãæ¿ãããæ°ãããªãªãŒã¹ã®åœ¢æãµã€ã¯ã«ãççž®ãããããšãæå³ããŠããããšãæãåºããŠãã ããã æ°ããæ©èœã¯ãåžžã«æŽæ°ããã XNUMX ã€ã®ãã¹ã¿ãŒ ãã©ã³ãã§éçºãããããã«ãªããŸãããããã«ã¯æ¢è£œã®å€æŽãå«ãŸããŠãããæ°ãããªãªãŒã¹ãå®å®ãããããã« XNUMX ãæããšã«ãã©ã³ããããã©ã³ããäœæãããŸãã
ã®
- å®éšçãªãµããŒããè¿œå ããŸãã
ãã¿ãŒã³ãããã³ã° ãinstanceofãæŒç®åã§ããã䜿çšãããšããã§ãã¯ãããå€ã«ã¢ã¯ã»ã¹ããããã®ããŒã«ã«å€æ°ãããã«å®çŸ©ã§ããŸãã ããšãã°ããString s = (String) objããæ瀺çã«å®çŸ©ããã«ããif (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}ããããã«æžãããšãã§ããŸããããã¯æ¬¡ã®ãšããã§ãã
if (ã°ã«ãŒãã®ãªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹) {
ã°ã«ãŒã group = (ã°ã«ãŒã) obj;
varãšã³ããªãŒ = group.getEntries();
}ããã§ããGroup group = (Group) objããšããå®çŸ©ãçç¥ã§ããŸãã
if (ã°ã«ãŒãã°ã«ãŒãã®ãªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹) {
varãšã³ããªãŒ = group.getEntries();
} - æ°ããããŒã¯ãŒãããã®å®éšçãµããŒããè¿œå ããŸããã
èšé² ããã«ãããã¯ã©ã¹ãå®çŸ©ããããã®ã³ã³ãã¯ããªåœ¢åŒãæäŸãããåäœãå€ãããªããã£ãŒã«ãã«ã®ã¿ããŒã¿ãæ ŒçŽãããå Žåã«ãequals()ãhashCode()ãtoString() ãªã©ã®ããŸããŸãªäœã¬ãã« ã¡ãœãããæ瀺çã«å®çŸ©ããå¿ èŠããªããªããŸãã ã¯ã©ã¹ããequals()ãhashCode()ãããã³ toString() ã¡ãœããã®æšæºå®è£ ã䜿çšããå Žåãæ瀺çã«å®çŸ©ããªããŠãå®è¡ã§ããŸããå ¬éã¬ã³ãŒã BankTransaction(LocalDate æ¥ä»ã
åé¡
æååã®èª¬æ) {}ãã®å®£èšã«ãããã³ã³ã¹ãã©ã¯ã¿ãŒ ã¡ãœãããšã²ãã¿ãŒ ã¡ãœããã«å ããŠãequals()ãhashCode()ãããã³ toString() ã¡ãœããã®å®è£ ãèªåçã«è¿œå ãããŸãã
-
æšæºåããã ãŸããæ°ãã圢åŒã®ãswitchãåŒã®ãµããŒããããã©ã«ãã§æå¹ã«ãªã£ãŠããããbreakãæŒç®åãæå®ããå¿ èŠããªããç¹°ãè¿ãã©ãã«ãçµåã§ããæŒç®åã®åœ¢åŒã ãã§ãªããè¡šçŸãvar log = ã¹ã€ãã (ã€ãã³ã) {
case PLAY -> ããŠãŒã¶ãŒãåçãã¿ã³ãæŒããã;
åæ¢ãäžæåæ¢ã®å Žå -> ããŠãŒã¶ãŒã¯äŒæ©ãå¿ èŠã§ãã;
ããã©ã«ã -> {
æååã¡ãã»ãŒãž =event.toString();
çŸåšã® LocalDateTime = LocalDateTime.now();
yield "äžæãªã€ãã³ã" + ã¡ãã»ãŒãž +
» ãã°ãªã³ããŸãã » + ä»;
}
}; - å®éšãµããŒãã®æ¡å€§
ããã¹ãããã㯠- æåãšã¹ã±ãŒãã䜿çšããããããã¯å ã®å ã®ããã¹ã圢åŒãä¿æããã«ããœãŒã¹ ã³ãŒãã«è€æ°è¡ã®ããã¹ã ããŒã¿ãå«ããããšãã§ããæ°ãã圢åŒã®æååãªãã©ã«ã ãããã¯ã¯ 14 ã€ã®äºéåŒçšç¬Šã§å²ãŸããŠããŸãã Java XNUMX ã§ã¯ãããã¹ã ãããã¯ã§ãåäžã®ã¹ããŒã¹ãå®çŸ©ãããšã¹ã±ãŒã ã·ãŒã±ã³ã¹ã\sããšã次ã®è¡ãšé£çµããã\ãããµããŒããããããã«ãªããŸãã (éåžžã«é·ãè¡ãå°å·ããå¿ èŠãããå Žåã¯æ¹è¡ãç¡èŠããŸã)ã ããšãã°ãã³ãŒãã®ä»£ããã«ãæååhtml = " » +
"\n\t" + " » +
"\n\t\t" + " ãJava 1 ãç»å ŽããŸãã!ã » +
"\n\t" + " » +
"\n" + " ";次ã®ããã«æå®ã§ããŸãã
æååhtml = """
»Java 1\
ããã«ããïŒ
"""; - äŸå€çºçæã®èšºæã®æ
å ±å
容ãæ¡åŒµããŸããã
NullPointerException ã 以åã®ãšã©ãŒ ã¡ãã»ãŒãžã«ã¯è¡çªå·ã®ã¿ã瀺ãããŠããŸããããçŸåšã¯äŸå€ãåŒãèµ·ãããã¡ãœããã®è©³çŽ°ã瀺ãããŠããŸãã çŸåšãé«åºŠãªèšºæã¯ãã-XX:+ShowCodeDetailsInExceptionMessagesããã©ã°ãæå®ããŠèµ·åããå Žåã«ã®ã¿æå¹ã«ãªããŸãã ããšãã°ããã®ãã©ã°ãæå®ãããšã次ã®è¡ã®äŸå€ãvar name = user.getLocation().getCity().getName();
ã¡ãã»ãŒãžã衚瀺ãããŸã
ã¹ã¬ãããã¡ã€ã³ãjava.lang.NullPointerException ã§ã®äŸå€:ãLocation.getCity()ããåŒã³åºããŸãã
ãUser.getLocation()ãã®æ»ãå€ãnullãªã®ã§
NullPointerExample.main(NullPointerExample.java:5):5) ã§ããã«ãããLocation.getCity() ã¡ãœãããåŒã³åºããããUser.getLocation() ã null ãè¿ããããšãããããŸãã
-
å®è£ æžã¿ jpackage ãŠãŒãã£ãªãã£ã®ãã¬ãã¥ãŒãèªå·±å®çµå Java ã¢ããªã±ãŒã·ã§ã³ã®ããã±ãŒãžãäœæã§ããŸãã ãã®ãŠãŒãã£ãªãã£ã¯ JavaFX ã® javapackager ã«åºã¥ããŠãããããŸããŸãªãã©ãããã©ãŒã (Windows ã®å Žå㯠msi ãš exeãmacOS ã®å Žå㯠pkg ãš dmgãLinux ã®å Žå㯠deb ãš rpm) ã®ãã€ãã£ã圢åŒã§ããã±ãŒãžãäœæã§ããŸãã ããã±ãŒãžã«ã¯ãå¿ èŠãªäŸåé¢ä¿ããã¹ãŠå«ãŸããŠããŸãã - G1ã¬ããŒãžã³ã¬ã¯ã¿ãŒãž
è¿œå ãããŸãã ãã®ã¢ãŒããã¯ãã£ã䜿çšãã倧èŠæš¡ã·ã¹ãã ã§ã®äœæ¥ã®è©³çŽ°ãèæ ®ããæ°ããã¡ã¢ãªå²ãåœãŠã¡ã«ããºã沌 ã æ°ããã¡ã¢ãª ã¢ãã±ãŒã¿ã¯ãã+XX:+UseNUMAããã©ã°ã䜿çšããŠæå¹ã«ãªããNUMA ã·ã¹ãã ã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããŸãã -
è¿œå ãã JFR (JDK Flight Recorder) ã€ãã³ãããªã³ã¶ãã©ã€ã§ç£èŠããããã® API (ããšãã°ãç¶ç¶çãªç£èŠãçµç¹ãããã)ã -
è¿œå ãã jdk.nio.mapmode ã¢ãžã¥ãŒã«ãäžæ®çºæ§ã¡ã¢ãª (NVM) ãåç §ãããããããããã€ã ãããã¡ (MappedByteBuffer) ãäœæããããã®æ°ããã¢ãŒã (READ_ONLY_SYNCãWRITE_ONLY_SYNC) ãæäŸããŸãã -
å®è£ æžã¿ å€éšã¡ã¢ãª ã¢ã¯ã»ã¹ API ã®ãã¬ãã¥ãŒãJava ã¢ããªã±ãŒã·ã§ã³ã¯ãæ°ãã MemorySegmentãMemoryAddressãããã³ MemoryLayout æœè±¡åãæäœããããšã§ãJava ããŒãã®å€åŽã®ã¡ã¢ãªé åã«å®å šãã€å¹ççã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã -
çºè¡šãããŸãã Solaris OS ããã³ SPARC ããã»ããµ (Solaris/SPARCãSolaris/x64ãããã³ Linux/SPARC) çšã®éæšå¥šã®ããŒãã¯ãå°æ¥çã«åé€ãããäºå®ã§ãã ãããã®ããŒããéæšå¥šã«ããããšã§ãã³ãã¥ããã£ã¯ Solaris ããã³ SPARC åºæã®æ©èœã®ä¿å®ã«æéãç¡é§ã«ããããšãªããæ°ãã OpenJDK æ©èœã®éçºãå éã§ããããã«ãªããŸãã -
åé€ãããŸãã CMS (åæããŒã¯ ã¹ã€ãŒã) ã¬ããŒãž ã³ã¬ã¯ã¿ãŒããã㯠1 幎åã«æ代é ããšããŒã¯ãããã¡ã³ããã³ã¹ãããŠããŸããã§ãã (CMS ã¯ããªãåã« GXNUMX ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã«çœ®ãæããããŸãã)ã ãã®äžãçºè¡šãã ParallelScavenge ãš SerialOld ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ã¢ã«ãŽãªãºã ã®çµã¿åããã®äœ¿çšãéæšå¥šã«ãªããŸãã (ãªãã·ã§ã³ "-XX:+UseParallelGC -XX:-UseParallelOldGC" ã§å®è¡)ã - ZGC (Z Garbage Collector) ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã®å®éšçãµããŒãã macOS ããã³ Windows ãã©ãããã©ãŒã ã§æäŸãããŠããŸã (以å㯠Linux ã§ã®ã¿ãµããŒããããŠããŸãã)ã ZGC ã¯ããã·ã ã¢ãŒãã§åäœããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã«ããé 延ãå¯èœãªéãæå°éã«æã (ZGC 䜿çšæã®ã¹ããŒã«æé㯠10 ããªç§ãè¶ ããŸãã)ããµã€ãºãæ°çŸã¡ã¬ãã€ãããæ°ãã©ãã€ããŸã§ã®å°èŠæš¡ããŒããšå·šå€§ããŒãã®äž¡æ¹ã§åäœã§ããŸãã
-
åé€ãããŸãã Pack200 ã¢ã«ãŽãªãºã ã䜿çšã㊠JAR ãã¡ã€ã«ãå§çž®ããããã®ããŒã«ããããš APIã
åºæïŒ ãªãŒãã³ããã.ru