Po sześciu miesiącach prac rozwojowych firma Oracle platformę (Java Platform, Standard Edition 13), którego wzorcową realizacją jest projekt open-source OpenJDK. W Java SE 13 zachowana jest wsteczna kompatybilność z wcześniejszymi wersjami platformy Java, wszystkie wcześniej napisane projekty Java będą działać bez zmian na nowej wersji. Gotowe do instalacji kompilacje Java SE 13 (JDK, JRE i Server JRE) dla systemów Linux (x86_64), Solaris, Windows i macOS. Wzorcowa realizacja opracowana w ramach projektu OpenJDK jest w pełni otwarta na licencji GPLv2 z wyjątkami GNU ClassPath, które umożliwiają dynamiczne łączenie z produktami komercyjnymi.
Java SE 13 jest klasyfikowana jako wersja z normalnym okresem wsparcia, w której aktualizacje będą wydawane do czasu następnego wydania. Jako gałąź z długoterminowym wsparciem (LTS) należy używać Java SE 11, której aktualizacje będą dostępne do 2026 roku. Poprzednia gałąź LTS Java 8 będzie wspierana do grudnia 2020 roku. Następne wydanie LTS planowane jest na wrzesień 2021 roku. Przypomnijmy, że od wydania Java 10 projekt przeszedł na nowy proces rozwoju, zakładający krótszy cykl powstawania nowych wydań. Nowe funkcjonalności są teraz rozwijane w jednej stale aktualizowanej gałęzi master, do której wprowadzane są gotowe zmiany, a co sześć miesięcy odgałęziają się gałęzie stabilizujące nowe wydania. Na marzec przyszłego roku planowane jest wydanie Java 14, dla którego już są dostępne wersje do testowania.
Z :
- wsparcie dla dynamicznego dodawania archiwów CDS (Class-Data Sharing), które umożliwiają wspólny dostęp aplikacji do wspólnych klas. Za pomocą CDS wspólne klasy mogą być przechowywane w oddzielnym współdzielonym archiwum, co przyspiesza uruchamianie aplikacji i zmniejsza obciążenia. W nowej wersji dodano środki do dynamicznego archiwizowania klas po zakończeniu działania aplikacji. Umieszczone w archiwum klasy obejmują wszystkie klasy załadowane w trakcie działania programu oraz towarzyszące biblioteki, które nie znajdowały się w pierwotnie dostarczonym podstawowym archiwum CDS;
- W zbieraczu śmieci ZGC (Z Garbage Collector) wsparcie dla zwracania niewykorzystanej pamięci systemowi operacyjnemu;
- przerobiona implementacja API Legacy Socket (java.net.Socket i java.net.ServerSocket), która jest prostsza w utrzymaniu i debugowaniu. Dodatkowo, zaproponowana implementacja będzie łatwiejsza do dostosowania do nowego systemu wątków w przestrzeni użytkownika (fibers), rozwijanego w ramach projektu Loom;
- rozwój nowej formy wyrażeń „switch”. Dodano eksperymentalną (Preview) możliwość używania „switch” nie tylko jako operatora, ale również jako wyrażenia. Na przykład, teraz można używać konstrukcji:
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};lub
System.out.println(
switch (k) {
case 1 -> „jeden”
case 2 -> „dwa”
default -> „wiele”
}
);W przyszłości na bazie tej możliwości wprowadzić wsparcie dla dopasowania na podstawie wzorców;
- eksperymentalne wsparcie dla bloków tekstowych — nowej formy literałów łańcuchowych, pozwalających na włączenie do kodu źródłowego wielowierszowych danych tekstowych bez potrzeby stosowania w nich ucieczek symboli, zachowując pierwotne formatowanie tekstu w bloku. Obramowanie bloku odbywa się za pomocą trzech podwójnych cudzysłowów. Na przykład, zamiast wyrażenia
String query = „SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n” +
„WHERE `CITY` = ‘INDIANAPOLIS’\n” +
„ORDER BY `EMP_ID`, `LAST_NAME`;\n”;teraz można zastosować konstrukcję:
String query = „„„
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = ‘INDIANAPOLIS’
ORDER BY `EMP_ID`, `LAST_NAME`;
«»»; - Zamknięto 2126 zgłoszeń błędów, z których 1454 zostały naprawione przez pracowników Oracle, a 671 przez zewnętrznych uczestników, z których jedna szósta zmian została wprowadzona przez niezależnych programistów, a reszta przez przedstawicieli takich firm jak IBM, Red Hat, Google, Loongson, Huawei, ARM i SAP.
Źródło: opennet.ru
