Ce e nou introdus
java.net.HttpURLConnection -> HttpClient, HttpRequest, HttpResponse
Exemplu #1:
Exemplu #2:
- CompletableFuture a fost introdus în Java8, pentru apeluri asincrone
- join este necesar pentru a aștepta unirea thread-ului curent (main) cu cel care face apelul Http; pentru ca programul să nu se termine înainte de primirea răspunsului
Ce e nou în librării
String:
> "he".repeat(3); // "hehehe"
> "".isBlank(); // true
> "\n\t text \u2005".strip(); // "text"
> "1 \n 2 \n 3 \n 4".lines().forEach(System.out::println); // scrie pe linii noi 1 2 3 4
Files:
String readString (Path path);
Path writeString(Path path, CharSequence cs, OpenOptions options);
Optional: Optional.ofNullable(null).isEmpty(); // true
Predicate::not
Unicode 10
- update de la Unicode 8 (Java 10)
- sunt adăugate mai mult de 16.000 caractere noi
- caracterele aparțin la 10 sisteme de scriere noi, printre care și cel nepalez
Inferența tipului de variabilă locală cu var:
> var name = "Ana";
> (@Nonnull var a, @Nullable var b) -> a.concat(b)
Performanță și securitate
Garbage collector: G1 GC (încă din Java 9)
Noutate: Epsilon GC = rulare fără GC până când crapă aplicația = No GC paradigm
- pt aplicații predictibile în ce privește consumul de memorie, eventual cu o durată de viață mică
- util pt testarea performanței unei aplicații
- este o opțiune experimentală: -XX:+UnlockExperimentalVMOptions, -XX:+UseEpsilonGC
Noutate: Z Garbage Collector
- ia pauză sub 10 secunde
- durata pauzei e constantă (nu crește odată cu heap size)
- disponibil doar în Linux x64: -XX:+UnlockExperimentalVMOptions, -XX:+UseZGC
TLS 1.3 = transport layer security (asemănător https)