Epsilon Garbage Collector
Ifølge JDK Enhancement Proposal (eller JEP) 318 er Epsilon en lav-overhead affaldssamler (GC), hvis formål er at håndtere hukommelsestildeling uden at implementere nogen egentlig hukommelsesgenvindingsmekanisme.
Målet er at "give en fuldstændig passiv GC-implementering med en afgrænset allokeringsgrænse og den lavest mulige latenstidskostnad på bekostning af hukommelsesfodaftryk og hukommelseskapacitet", siger Java-kerneudviklere i forslaget. ”En vellykket implementering er en isoleret kodeændring, rører ikke andre GC'er og foretager minimale ændringer i resten af JVM.”
Selvom Java allerede tilbyder et bredt udvalg af stærkt konfigurerbare GC-implementeringer, mener udviklerne, at det er lettere at opretholde en separat GC-implementering for at adressere specifikke brugssager, såsom performance-test, hukommelsestest-test, VM-interface-test, ekstremt kortvarige job , latenstidsforbedringer i sidste fald eller forbedringer af gennemstrømning i sidste fald end at pæle en anden konfigurationsmulighed på den eksisterende GC-implementering.
Lokal variabel syntaks for Lambda-parametre
Java 10 introducerede lokal variabel type inferens for at reducere ordligheden, der er forbundet med at skrive Java-kode, og Java 11 udvider den til at tillade var skal bruges til at erklære de formelle parametre for implicit typede lambda-udtryk, som anført i JEP 323, med titlen Local-Variable Syntax for Lambda Parameters.
I stedet for at skrive:
(var x, var y) -> x.proces (y)Det vil være muligt blot at skrive:
(x, y) -> x.proces (y)Ensartetheden i sig selv er ikke den eneste fordel ved lokal variabel syntaks for lambda-parametre. En anden fordel er, at det bliver muligt at anvende modifikatorer på lokale variabler og lambda-formaler uden at miste korthed.
Dynamiske klassefilkonstanter
JEP 309 udvider Java-klassefilformatet til at understøtte en ny konstant poolform, CONSTANT_Dynamic, for at reducere omkostningerne og afbrydelsen ved at skabe nye former for materialiserbare klassefilkonstanter. Ligesom at forbinde en påkaldt dynamisk call site delegerer link til en bootstrap-metode, så vil indlæsning af en CONSTANT_Dynamic delegere oprettelse til en bootstrap-metode.
Ifølge Java-kerneudviklere vil den nye konstante poolform tilbyde sprogdesignere og compiler-implementatorer bredere muligheder for ekspressivitet og ydeevne. “Richere, mere fleksible, mere stærkt typede konstanter fjerner friktion fra udviklingen af påkaldte dynamiske protokoller, hvilket igen letter bevægelsen af kompleks logik fra kørselstid til sammenkædningstid, forbedrer programydelsen og forenkler kompilatorlogikken.”
Hvad kan ikke komme til Java 11
På trods af de ovenfor beskrevne funktioner vil Java 11 faktisk være slankere end Java 10, fordi den er indstillet til at miste CORBA (Common Object Request Broker Architecture), Java EE-moduler og JavaFX, et sæt grafik- og mediepakker, der gør det muligt for udviklere at designe, oprette, teste, fejle og implementere rige klientapplikationer.
CORBA er den åbne standard for heterogen computing, og den blev udfaset sammen med Java EE-moduler i Java SE 9. Standalone-versioner af Java EE-moduler vil stadig være tilgængelige fra tredjepartswebsteder, men Oracle behøver ikke længere at opretholde to separate implementeringer: en i Java SE og den anden i Java EE.