I muri i nga marama e ono o te whanaketanga, Oracle i tukuna tūāpapa JavaSE 14 (Java Platform, Paerewa Putanga 14), ka whakamahia te kaupapa OpenJDK tuwhera-puna hei whakatinanatanga tohutoro. Ka mau tonu a Java SE 14 i te hototahi whakamuri me nga putanga o mua o te papaahi Java; ko nga kaupapa Java katoa i tuhia i mua ka mahi kaore he huringa ka whakahaerehia i raro i te putanga hou. Kua reri ki te whakauru i nga hanganga Java SE 14 (JDK, JRE me Server JRE) kua rite mo Linux (x86_64), Windows me macOS. Ko te whakatinanatanga tohutoro i whakawhanakehia e te kaupapa OpenJDK Java 14 he puna tuwhera katoa i raro i te raihana GPLv2, me nga tuunga a GNU ClassPath ka taea te hono hihiri me nga hua arumoni.
Ko te Java SE 14 kua whakarōpūhia hei tuku tautoko whanui me te whiwhi tonu i nga whakahoutanga tae noa ki te tukunga e whai ake nei. Ko Java SE 11 te peka Tautoko Roa (LTS), ka whiwhi tonu i nga whakahoutanga tae noa ki te tau 2026. Ko te peka LTS o mua o Java 8 ka tautokohia tae noa ki Hakihea 2020. Ko te tukunga LTS e whai ake nei kua whakaritea mo Mahuru 2021. Me whakamahara koe ki a koe i timata mai i te tukunga o Java 10, ka huri te kaupapa ki te tukanga whanaketanga hou, e kii ana i te huringa poto mo te hanganga o nga putanga hou. Inaianei kua whakawhanakehia nga mahi hou i roto i tetahi peka matua kua whakahoutia tonu, kei roto ko nga huringa kua oti te hanga me nga manga ka peka ia ono marama ki te whakapumau i nga putanga hou.
Kua taapirihia he tautoko whakamatautau whakaōrite tauira i roto i te kaiwhakahaere "instanceof", ka taea e koe te tautuhi tonu i tetahi taurangi rohe ki te uru atu ki te uara kua tirohia. Hei tauira, ka taea e koe te tuhi tonu “mehemea (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}” me te kore e tino tautuhia “String s = (String) obj”.
Ko:
if (obj instanceof Group) {
Rōpū rōpū = (Rōpū)obj;
var tāurunga = group.getEntries();
}
Inaianei ka taea e koe te mahi me te kore te whakamaramatanga "Rōpū Rōpū = (Rōpū) obj":
if (obj instanceof Rōpū Rōpū) {
var tāurunga = group.getEntries();
}
He tautoko whakamatautau mo te kupu matua hou "record", e whakarato ana i te puka kiato mo te tautuhi i nga karaehe, ka taea e koe te karo ki te tautuhi i nga tikanga taumata-iti penei i te rite(), hashCode() me toString() i roto i nga keehi ka penapena nga raraunga ki nga mara kaore e rereke ana te whanonga. Ina whakamahi ana te karaehe i nga whakatinanatanga paerewa o nga tikanga rite(), hashCode() me toString(), ka taea te mahi me te kore he whakamaramatanga marama:
rekoata a te iwi mo te BankTransaction(Rā rohe,
moni rua
Whakaahuatanga aho) {}
Ma tenei whakapuakanga ka taapiri aunoa i nga whakatinanatanga o nga tikanga rite(), hashCode() me toString() hei taapiri atu ki nga tikanga hanga me te tiki.
Paerewa me te tautoko mo te ahua hou o nga korero "whakawhiti" ka taea ma te taunoa, kaore e hiahia ki te tautuhi i te kaiwhakahaere "pakaru", ka taea e koe te whakakotahi i nga tapanga tukurua ka taea te whakamahi ehara i te ahua o te kaiwhakahaere anake, engari ano he whakapuakitanga.
var log = whakawhiti (takahanga) {
take PLAY -> "Na te Kaiwhakamahi i whakaoho te paatene purei";
case STOP, PAUSE -> "Me okioki te kaiwhakamahi";
taunoa -> {
Karere aho = event.toString();
LocalDateTime inaianei = LocalDateTime.now();
tukua "Takanga Unknown" + karere +
» kua takiuru » + inaianei;
}
};
Te tautoko whakamatautau kua whakawhānuihia poraka kuputuhi - he ahua hou o nga reta aho e taea ai e koe te whakauru i nga raraunga kuputuhi raina-maha ki te waehere puna me te kore e whakamahi i te ahua o te mawhiti me te pupuri i te whakatakotoranga kuputuhi taketake i roto i te poraka. Ka anga te poraka e toru nga korukī rua. I roto i te Java 14, ka tautokohia e nga poraka kuputuhi te raupapa mawhiti "\s" ki te tautuhi i te mokowā kotahi me te "\" ki te hono ki te rarangi e whai ake nei (kaore e aro ki nga rarangi hou ina hiahia koe ki te tuhi i tetahi rarangi tino roa). Hei tauira, hei utu mo te waehere
Kua whakawhänuihia te ihirangi o nga korero mo nga tātaritanga ina puta he atanga NullPointerException. I te mea i mua ko te karere hapa i korero noa ki te nama raina, inaianei ka korerohia he aha te tikanga i puta ke ai. I tenei wa ka whakahohehia nga tātaritanga matatau ina whakarewahia me te haki "-XX:+ShowCodeDetailsInExceptionMessages". Hei tauira, i te wa e tohu ana i tenei haki, ko te tuunga ki te raina
ingoa var = user.getLocation().getCity().getName();
ka puta he karere
Okotahi i te miro "matua" java.lang.NullPointerException: Kaore e taea te tono "Location.getCity()"
no te mea he kore te uara whakahoki o "User.getLocation()".
i NullPointerExample.main(NullPointerExample.java:5):5)
e marama ana ko te tikanga Location.getCity() kaore i karangahia, ka hoki mai a User.getLocation() kore.
Kua whakatinanahia He arokite mo te taputapu jpackage, e taea ai e koe te hanga kete mo nga tono Java-whaiaro. Ko te whaipainga kei runga i te javapackager mai i JavaFX ka taea e koe te hanga i nga kete i roto i nga whakatakotoranga taketake ki nga momo papaaho (msi me te exe mo Windows, pkg me dmg mo macOS, deb me rpm mo Linux). Kei roto i nga kohinga nga whakawhirinaki katoa e hiahiatia ana.
Ki te kaikohi para G1 kua taapirihia he tikanga tohatoha mahara hou e whai whakaaro ana ki nga ahuatanga o te mahi i runga i nga punaha nui ma te whakamahi i te hoahoanga Tau. Ka taea te tohatoha mahara hou ma te whakamahi i te haki "+XX:+UseNUMA" ka taea te whakapai ake i nga mahi i runga i nga punaha NUMA.
Kua tapirihia API mo te aroturuki i runga i te rere o nga huihuinga JFR (JDK Flight Recorder), hei tauira mo te whakarite i te tirotiro haere tonu.
Kua tapirihia jdk.nio.mapmode kōwae, e tuku aratau hou (READ_ONLY_SYNC, WRITE_ONLY_SYNC) mo te hanga mapi paita buffers (MappedByteBuffer) tohutoro mahara-kore (NVM).
Kua whakatinanahia He arokite mo te API Uru-Mahara-Tahi, ka taea e nga tono Java te uru haumaru me te whai hua ki nga rohe mahara kei waho o te puranga Java ma te raweke i nga tangohanga hou o MemorySegment, MemoryAddress, me MemoryLayout.
Kua panuitia kua whakakorehia nga tauranga mo te Solaris OS me te SPARC tukatuka (Solaris / SPARC, Solaris / x64 me Linux / SPARC) me te whakaaro ki te tango i enei tauranga a muri ake nei. Ko te whakakore i enei tauranga ka taea e te hapori te whakatere i te whanaketanga o nga ahuatanga OpenJDK hou me te kore e moumou taima ki te pupuri i nga ahuatanga motuhake o Solaris me SPARC.
Kua mukua te CMS (Concurrent Mark Sweep) kaikohi para, i tohuhia kua tawhitotia i nga tau e rua ki muri, ka noho kore tonu (kua whakakapihia a CMS i mua e te kaikohi paru G1). I tua atu, i panuihia kua whakakorehia te whakamahi i te huinga o ParallelScavenge me te SerialOld kohinga paru algorithms (whakahaere me nga whiringa "-XX:+UseParallelGC -XX:-UseParallelOldGC").
Ko te tautoko whakamatautau mo te kaikohi paru ZGC (Z Garbage Collector) kua tukuna i runga i nga papaaho macOS me Windows (i tautokohia i mua i runga i te Linux anake). Ka mahi a ZGC i roto i te aratau hāngū, ka whakaiti i te roanga na te kohinga para i te mea ka taea (te wa o te waahi ka whakamahi i te ZGC kaua e neke ake i te 10 ms.) ka taea te mahi me nga puranga iti me nga puranga nui, mai i te maha rau megabytes ki te maha terabytes.
Kua tangohia Utauta me te API mo te kopiri i nga konae JAR ma te whakamahi i te Pack200 algorithm.