เบซเบผเบฑเบเบเบฒเบเบซเบปเบเปเบเบทเบญเบเบเบญเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒ, Oracle
Java SE 14 เบเบทเบเบเบฑเบเปเบเบฑเบเบฅเบธเปเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบปเปเบงเปเบเปเบฅเบฐเบเบฐเบชเบทเบเบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบธเบเบเบปเบเบเปเบงเบฒเบเบฒเบเบเปเบญเบเบเปเปเปเบ. เบชเบฒเบเบฒเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเปเบฅเบเบฐเบเบฒเบง (LTS) เบเบงเบเปเบเบฑเบ Java SE 11, เปเบเบดเปเบเบเบฐเบชเบทเบเบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบธเบเบเบปเบเบเปเบงเบฒ 2026. เบชเบฒเบเบฒ LTS เบเบตเปเบเปเบฒเบเบกเบฒเบเบญเบ Java 8 เบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบปเบเบเปเบงเบฒเปเบเบทเบญเบเบเบฑเบเบงเบฒ 2020. เบเบฒเบเบเปเบญเบ LTS เบเปเปเปเบเปเบกเปเบเบเปเบฒเบเบปเบเบชเปเบฒเบฅเบฑเบเปเบเบทเบญเบเบเบฑเบเบเบฒ 2021. เปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบทเบญเบเบเปเบฒเบเบงเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบญเบ Java 10, เปเบเบเบเบฒเบเปเบเปเบเปเบฝเบเปเบเบชเบนเปเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบซเบกเป, เปเบเบดเปเบเบซเบกเบฒเบเปเบเบดเบเบงเบปเบเบเบญเบเบเบตเปเบชเบฑเปเบเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบเบเบฑเปเบเบเบฒเบเบเปเบญเบเปเบซเบกเป. เบเบฑเบเบเบฑเบเปเบซเบกเปเปเบเบเบฑเบเบเบธเบเบฑเบเปเบเปเบเบทเบเบเบฑเบเบเบฐเบเบฒเบขเบนเปเปเบเบชเบฒเบเบฒเบเบปเปเบเบชเบฐเบเบฑเบเบเบตเปเบกเบตเบเบฒเบเบเบฑเบเบเบธเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบ, เปเบเบดเปเบเบเบฐเบเบญเบเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบเบฝเบกเบเปเบญเบกเปเบฅเบฐเบเบฒเบเบชเบฒเบเบฒเปเบเบเบทเบเปเบเบเบญเบญเบเบเบธเบเปเบซเบปเบเปเบเบทเบญเบเปเบเบทเปเบญเบชเบฐเบเบฝเบเบฅเบฐเบเบฒเบเบเบฒเบเบเปเบญเบเปเบซเบกเป.
เบเบฒเบ
- ะะพะฑะฐะฒะปะตะฝะฐ ัะบัะฟะตัะธะผะตะฝัะฐะปัะฝะฐั ะฟะพะดะดะตัะถะบะฐ
เบเบฒเบเบเบฑเบเบเบนเปเบฎเบนเบเปเบเบ เปเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบ "เบเบปเบงเบขเปเบฒเบ", เปเบเบดเปเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบปเบงเปเบเบเปเบญเบเบเบดเปเบเปเบเบเบฑเบเบเบตเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบเบกเบนเบเบเปเบฒเบเบตเปเบเบทเบเบเบงเบเบชเบญเบ. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเบฑเบเบเบต "เบเปเบฒ (obj instanceof String s && s.length() > 5) {.. s.contains (..) ..}" เปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฒเบเบปเบเบขเปเบฒเบเบเบฑเบเปเบเบเบงเปเบฒ "String s = (String) obj".เปเบกเปเบ:
เบเปเบฒ (obj เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบธเปเบก) {
เบเบธเปเบก = (เบเบธเปเบก)obj;
var entries = group.getEntry();
}เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบเปเปเบกเบตเบเปเบฒเบเบดเบเบฒเบก "เบเบธเปเบกเบเบธเปเบก = (เบเบธเปเบก) obj":
เบเปเบฒ (obj เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบธเปเบกเบเบธเปเบก) {
var entries = group.getEntry();
} - ะะพะฑะฐะฒะปะตะฝะฐ ัะบัะฟะตัะธะผะตะฝัะฐะปัะฝะฐั ะฟะพะดะดะตัะถะบะฐ ะฝะพะฒะพะณะพ ะบะปััะตะฒะพะณะพ ัะปะพะฒะฐ ยซ
เบเบฒเบเบเบฑเบเบเบถเบ ", เปเบเบดเปเบเบชเบฐเบซเบเบญเบเบฎเบนเบเปเบเบเบเบตเปเบซเบเบฒเปเบซเบเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเบเบปเบเบซเปเบญเบเบฎเบฝเบ, เบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเปเบฒเบเบปเบเบงเบดเบเบตเบเบฒเบเบฅเบฐเบเบฑเบเบเปเปเบฒเบเปเบฒเบเปเบขเปเบฒเบเบเบฐเปเบเปเบเปเบเบฑเปเบ: equals(), hashCode() เปเบฅเบฐ toString() เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเปเบกเบนเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบเบฒเบเบชเบฐเบซเบเบฒเบกเบเบตเปเบเบถเบเบเบดเบเปเบฒเบเปเปเบเปเบฝเบเปเบเบ. เปเบกเบทเปเบญเบซเปเบญเบเบฎเบฝเบเปเบเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเบกเบฒเบเบเบฐเบเบฒเบเบเบญเบเบงเบดเบเบตเบเบฒเบ equals(), hashCode() เปเบฅเบฐ toString(), เบกเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบเปเปเบกเบตเบเปเบฒเบเบดเบเบฒเบกเบเบตเปเบเบฑเบเปเบเบ:เบเบฒเบโเบเบฑเบโเบเบถเบโเบชเบฒโเบเบฒโเบฅเบฐโเบเบฐ BankTransaction(เบงเบฑเบโเบเบตโเบเปเบญเบโเบเบดเปเบโ,
เบเปเบฒเบเบงเบเบชเบญเบเปเบเบปเปเบฒ
เบเบณเบญเบฐเบเบดเบเบฒเบเบชเบฐเบเบฃเบดเบ) {}เบเบฒเบเบเบฐเบเบฒเบเบเบตเปเบเบฐเปเบเบตเปเบกเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบงเบดเบเบตเบเบฒเบ equals(), hashCode() เปเบฅเบฐ toString() เบเบทเปเบกเปเบชเปเบงเบดเบเบตเบเบฒเบ constructor เปเบฅเบฐ getter.
-
ะกัะฐะฝะดะฐััะธะทะธัะพะฒะฐะฝะฐ ะธ ะฒะบะปััะตะฝะฐ ะฟะพ ัะผะพะปัะฐะฝะธั ะฟะพะดะดะตัะถะบะฐ ะฝะพะฒะพะน ัะพัะผั ะฒััะฐะถะตะฝะธะน ยซswitchยป, ะฝะต ััะตะฑัััะตะน ัะบะฐะทะฐะฝะธั ะพะฟะตัะฐัะพัะฐ ยซbreakยป, ะฟะพะทะฒะพะปัััะตะน ะพะฑัะตะดะธะฝััั ะฟะพะฒัะพััััะธะตัั ะผะตัะบะธ ะธ ะดะพะฟััะบะฐััะตะน ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะฝะต ัะพะปัะบะพ ะฒ ัะพัะผะต ะพะฟะตัะฐัะพัะฐ, ะฝะพ ะธ ะบะฐะบ ะฒััะฐะถะตะฝะธั.var log = switch (event) {
case PLAY -> ยซUser has triggered the play buttonยป;
case STOP, PAUSE -> ยซUser needs a breakยป;
default -> {
String message = event.toString();
LocalDateTime now = LocalDateTime.now();
yield ยซUnknown event ยป + message +
ยป logged on ยป + now;
}
}; - ะ ะฐััะธัะตะฝะฐ ัะบัะฟะตัะธะผะตะฝัะฐะปัะฝะฐั ะฟะพะดะดะตัะถะบะฐ
เบเบฅเบฑเบญเบเบเปเปเบเบงเบฒเบก โ ะฝะพะฒะพะน ัะพัะผั ัััะพะบะพะฒัั ะปะธัะตัะฐะปะพะฒ, ะฟะพะทะฒะพะปัััะธั ะฒะบะปััะฐัั ะฒ ะธัั ะพะดะฝัะน ะบะพะด ะผะฝะพะณะพัััะพัะฝัะต ัะตะบััะพะฒัะต ะดะฐะฝะฝัะต ะฑะตะท ะฟัะธะผะตะฝะตะฝะธั ะฒ ะฝะธั ัะบัะฐะฝะธัะพะฒะฐะฝะธั ัะธะผะฒะพะปะพะฒ ะธ ัะพั ัะฐะฝัั ะธัั ะพะดะฝะพะต ัะพัะผะฐัะธัะพะฒะฐะฝะธั ัะตะบััะฐ ะฒ ะฑะปะพะบะต. ะะฑัะฐะผะปะตะฝะธะต ะฑะปะพะบะฐ ะพัััะตััะฒะปัะตััั ััะตะผั ะดะฒะพะนะฝัะผะธ ะบะฐะฒััะบะฐะผะธ. ะ Java 14 ะฒ ัะตะบััะพะฒัั ะฑะปะพะบะฐั ัะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตัะถะบะฐ escape-ะฟะพัะปะตะดะพะฒะฐัะตะปัะฝะพััะธ ยซ\sยป ะดะปั ะพะฟัะตะดะตะปะตะฝะธั ะพะดะฝะพะณะพ ะฟัะพะฑะตะปะฐ ะธ ยซ\ยป ะดะปั ะพะฑัะตะดะธะฝะตะฝะธั ัะพ ัะปะตะดัััะตะน ัััะพะบะพะน (ะธะณะฝะพัะธัะพะฒะฐะฝะธั ะฟะตัะตะฒะพะดะฐ ัััะพะบะธ, ะบะพะณะดะฐ ะฝัะถะฝะพ ะฒัะฒะตััะธ ะพัะตะฝั ะดะปะธะฝะฝัั ัััะพะบั). ะะฐะฟัะธะผะตั, ะฒะผะตััะพ ะบะพะดะฐString html = " ยป +
"\n\t" + " ยป +
"\n\t\t" + " \"Java 1 เบกเบฒเปเบฅเปเบง!\" ยป +
"\n\t" + " ยป +
"\n" + " ";เบเปเบฒเบเบชเบฒเบกเบฒเบเบฅเบฐเบเบธ:
String html = """
ยป Java 1\
เปเบกเปเบโเบเบตเปโเบเบตเป!
"""; - ะ ะฐััะธัะตะฝะฐ ะธะฝัะพัะผะฐัะธะฒะฝะพััั ะดะธะฐะณะฝะพััะธะบะธ ะฟัะธ ะฒะพะทะฝะธะบะฝะพะฒะตะฝะธะธ ะธัะบะปััะตะฝะธะน
NullPointerException . ะัะปะธ ัะฐะฝััะต ัะพะพะฑัะตะฝะธะต ะพะฑ ะพัะธะฑะบะต ะปะธัั ัััะปะฐะปะพัั ะฝะฐ ะฝะพะผะตั ัััะพะบะธ, ัะพ ัะตะฟะตัั ะฒ ะฝัะผ ะดะตัะฐะปะธะทะธััะตััั ะบะฐะบะพะน ะธะท ะผะตัะพะดะพะฒ ะฒัะทะฒะฐะป ะธัะบะปััะตะฝะธะต. ะ ะฐััะธัะตะฝะฝะฐั ะดะธะฐะณะฝะพััะธะบะฐ ะฟะพะบะฐ ะฒะบะปััะฐะตััั ัะพะปัะบะพ ะฟัะธ ะทะฐะฟััะบะต ั ัะปะฐะณะพะผ ยซ-XX:+ShowCodeDetailsInExceptionMessagesยป. ะะฐะฟัะธะผะตั, ะฟัะธ ัะบะฐะทะฐะฝะธะธ ะดะฐะฝะฝะพะณะพ ัะปะฐะณะฐ ะธัะบะปััะตะฝะธะต ะฒ ัััะพะบะตvar name = user.getLocation().getCity().getName();
ะฟัะธะฒะตะดัั ะบ ะฒัะฒะพะดั ัะพะพะฑัะตะฝะธั
Exception in thread ยซmainยป java.lang.NullPointerException: Cannot invoke ยซLocation.getCity()ยป
because the return value of ยซUser.getLocation()ยป is null
at NullPointerExample.main(NullPointerExample.java:5):5)ะบะพัะพัะพะต ะฟะพะทะฒะพะปัะตั ะฟะพะฝััั, ััะพ ะผะตัะพะด Location.getCity() ะฝะต ะฑัะป ะฒัะทะฒะฐะฝ, ะฐ User.getLocation() ะฒะตัะฝัะป ะทะฝะฐัะตะฝะธะต null.
-
เบเบฐเบเบดเบเบฑเบ ะฟัะตะดะฒะฐัะธัะตะปัะฝัะน ะฒะฐัะธะฐะฝั ััะธะปะธัั jpackage, ะฟะพะทะฒะพะปัััะตะน ัะพะทะดะฐะฒะฐัั ะฟะฐะบะตัั ะดะปั ัะฐะผะพะดะพััะฐัะพัะฝัั (self-contained) Java-ะฟัะธะปะพะถะตะฝะธะน. ะฃัะธะปะธัะฐ ะฑะฐะทะธััะตััั ะฝะฐ javapackager ะธะท JavaFX ะธ ะฟะพะทะฒะพะปัะตั ัะพัะผะธัะพะฒะฐัั ะฟะฐะบะตัั ะฒ ัะพัะผะฐัะฐั , ัะพะดะฝัั ะดะปั ัะฐะทะปะธัะฝัั ะฟะปะฐััะพัะผ (msi ะธ exe ะดะปั Windows, pkg ะธ dmg ะดะปั macOS, deb ะธ rpm ะดะปั Linux). ะะฐะบะตัั ะฒะบะปััะฐัั ะฒัะต ะฝะตะพะฑั ะพะดะธะผัะต ะทะฐะฒะธัะธะผะพััะธ. - ะ ัะฑะพััะธะบ ะผััะพัะฐ G1
เปเบเบตเปเบก ะฝะพะฒัะน ะผะตั ะฐะฝะธะทะผ ัะฐัะฟัะตะดะตะปะตะฝะธั ะฟะฐะผััะธ, ััะธััะฒะฐััะธะน ัะฟะตัะธัะธะบั ัะฐะฑะพัั ะฝะฐ ะบััะฟะฝัั ัะธััะตะผะฐั , ะธัะฟะพะปัะทัััะธั ะฐัั ะธัะตะบััััเบเบเบ . ะะพะฒัะน ัะฐัะฟัะตะดะตะปะธัะตะปั ะฟะฐะผััะธ ะฒะบะปััะฐะตััั ะฟัะธ ะฟะพะผะพัะธ ัะปะฐะณะฐ ยซ+XX:+UseNUMAยป ะธ ะฟะพะทะฒะพะปัะตั ัััะตััะฒะตะฝะฝะพ ะฟะพะดะฝััั ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััั ะฝะฐ NUMA-ัะธััะตะผะฐั . -
เปเบเบตเปเบกเปเบฅเปเบง API ะดะปั ะพััะปะตะถะธะฒะฐะฝะธั ะฝะฐ ะปะตัั ัะพะฑััะธะน JFR (JDK Flight Recorder), ะฝะฐะฟัะธะผะตั ะดะปั ะพัะณะฐะฝะธะทะฐัะธะธ ะฝะตะฟัะตััะฒะฝะพะณะพ ะผะพะฝะธัะพัะธะฝะณะฐ. -
เปเบเบตเปเบกเปเบฅเปเบง ะผะพะดัะปั jdk.nio.mapmode, ะฟัะตะดะปะฐะณะฐััะธะน ะฝะพะฒัะต ัะตะถะธะผั (READ_ONLY_SYNC, WRITE_ONLY_SYNC) ะดะปั ัะพะทะดะฐะฝะธั ะพัะพะฑัะฐะถะฐะตะผัั ะฑะฐะนัะพะฒัั ะฑััะตัะพะฒ (MappedByteBuffer), ัััะปะฐััะธั ัั ะฝะฐ ัะฝะตัะณะพะฝะตะทะฐะฒะธัะธะผัั ะฟะฐะผััั (NVM). -
เบเบฐเบเบดเบเบฑเบ ะฟัะตะดะฒะฐัะธัะตะปัะฝัะน ะฒะฐัะธะฐะฝั API Foreign-Memory Access, ะฟะพะทะฒะพะปัััะธะน Java-ะฟัะธะปะพะถะตะฝะธัะผ ะฑะตะทะพะฟะฐัะฝะพ ะธ ัััะตะบัะธะฒะฝะพ ะฟะพะปััะธัั ะดะพัััะฟ ะบ ะพะฑะปะฐัััะผ ะฟะฐะผััะธ, ะฒะฝะต ะบััะธ Java, ะผะฐะฝะธะฟัะปะธััั ะฝะพะฒัะผะธ ะฐะฑัััะฐะบัะธัะผะธ MemorySegment, MemoryAddress ะธ MemoryLayout. -
ะะฑััะฒะปะตะฝั ัััะฐัะตะฒัะธะผะธ ะฟะพััั ะดะปั ะะก Solaris ะธ ะฟัะพัะตััะพัะพะฒ SPARC (Solaris/SPARC, Solaris/x64 ะธ Linux/SPARC) c ะฝะฐะผะตัะตะฝะธะตะผ ัะดะฐะปะธัั ะดะฐะฝะฝัะต ะฟะพััั ะฒ ะฑัะดััะตะผ. ะะตัะตะฒะพะด ัะบะฐะทะฐะฝะฝัั ะฟะพััะพะฒ ะฒ ัะฐะทััะด ัััะฐัะตะฒัะธั ะฟะพะทะฒะพะปะธั ัะพะพะฑัะตััะฒั ััะบะพัะธัั ัะฐะทัะฐะฑะพัะบั ะฝะพะฒัั ะฒะพะทะผะพะถะฝะพััะตะน OpenJDK, ะฝะต ััะฐัั ะฒัะตะผั ะฝะฐ ะฟะพะดะดะตัะถะฐะฝะธะต ะพัะพะฑะตะฝะฝะพััะตะน, ัะฟะตัะธัะธัะฝัั ะดะปั Solaris ะธ SPARC. -
เบฅเบถเบเปเบฅเปเบง ัะฑะพััะธะบ ะผััะพัะฐ CMS (Concurrent Mark Sweep), ะบะพัะพััะน ะดะฒะฐ ะณะพะดะฐ ะฝะฐะทะฐะด ะฑัะป ะพัะผะตัะตะฝ ัััะฐัะตะฒัะธะผ ะธ ะพััะฐะปัั ะฑะตะท ัะพะฟัะพะฒะพะถะดะตะฝะธั (ะฝะฐ ัะผะตะฝั CMS ะดะฐะฒะฝะพ ะฟัะธััะป ัะฑะพััะธะบ ะผััะพัะฐ G1). ะัะพะผะต ัะพะณะพ,เบเบฐโเบเบฒเบ ัััะฐัะตะฒัะธะผ ะฟัะธะผะตะฝะตะฝะธะต ะบะพะผะฑะธะฝะฐัะธะธ ะฐะปะณะพัะธัะผะพะฒ ัะฑะพัะบะธ ะผััะพัะฐ ParallelScavenge ะธ SerialOld (ะทะฐะฟััะบ ั ะพะฟัะธัะผะธ ยซ-XX:+UseParallelGC -XX:-UseParallelOldGCยป). - ะะฑะตัะฟะตัะตะฝะฐ ัะบัะฟะตัะธะผะตะฝัะฐะปัะฝะฐั ะฟะพะดะดะตัะถะบะฐ ัะฑะพััะธะบะฐ ะผััะพัะฐ ZGC (Z Garbage Collector) ะฝะฐ ะฟะปะฐััะพัะผะฐั macOS ะธ Windows (ัะฐะฝะตะต ะฟะพะดะดะตัะถะธะฒะฐะปัั ัะพะปัะบะพ ะฒ Linux). ZGC ัะฐะฑะพัะฐะตั ะฒ ะฟะฐััะธะฒะฝะพะผ ัะตะถะธะผะต, ะฝะฐัะบะพะปัะบะพ ััะพ ะฒะพะทะผะพะถะฝะพ ะผะธะฝะธะผะธะทะธััะตั ะทะฐะดะตัะถะบะธ ะธะท-ะทะฐ ัะฑะพัะบะธ ะผััะพัะฐ (ะฒัะตะผั ะพััะฐะฝะพะฒะบะธ ะฟัะธ ะธัะฟะพะปัะทะพะฒะฐะฝะธะธ ZGC ะฝะต ะฟัะตะฒััะฐะตั 10 ะผั.) ะธ ะผะพะถะตั ัะฐะฑะพัะฐัั ะบะฐะบ ั ะฝะตะฑะพะปััะธะผะธ, ัะฐะบ ะธ ั ะพะณัะพะผะฝัะผะธ ะบััะฐะผะธ, ัะฐะทะผะตัะพะผ ะพั ะฝะตัะบะพะปัะบะธั ัะพัะตะฝ ะผะตะณะฐะฑะฐะนั ะดะพ ะผะฝะพะณะธั ัะตัะฐะฑะฐะนั.
-
เบฅเบถเบเบญเบญเบเปเบฅเปเบง ะธะฝััััะผะตะฝัะฐัะธะน ะธ API ะดะปั ัะถะฐัะธั JAR-ัะฐะนะปะพะฒ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ะฐะปะณะพัะธัะผะฐ Pack200.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru