piątek, 24 czerwca 2011

(Prawdopodobnie ostatnie) Podsumowanie nowości w Java 7

Wpisów na temat rzeczy, które mają się pojawić w Java 7 już kilka u mnie powstało (3). Ale ten chyba będzie ostatnim, bo termin wydania jest już znany i bliski - 28 lipca 2011! Z tej okazji postanowiłem przejrzeć ten brzydki dokument JSR 336.

Żeby nie zanudzać i nie rozwodzić się za bardzo (większość rzeczy już jak wspomniałem opisałem), lista zwycięzców tej długiej bitwy:

Bytecode
Lepsze wsparcie dla języków dynamicznych opartych na JVM - dodanie instrukcji invokedynamic.

Java Beans
Tutaj głównie poprawki w API. Dodano adnotację @Transient i oznaczono nią trochę getterów, poza tym poprawki w API ;-)

Kolekcje
Tutaj podobnie dodatki w API. Głównie chwalą się dodaniem metod Collections.emptyIterator() oraz Collections.emptyEnumeration() oraz zaktualizowaniem dokumentacji.

I/O
Nowe IO! NIO.2 opisane w JSR 203 :-) Wsparcie dla POSIX i ACL, nowy pakiet java.nio.file zawierający stuff do obsługi metadanych, dowiązań, ułatwienia przeglądania katalogów (interface FileVisitor)  i jeszcze trochę tego, ale za bardzo się nie zagłębiałem akurat w ten temat.

java.lang
Tutaj tzw. project coin (JSR 334) z zestawem kilku zmian do samego języka: switch po stringu, blok try dla zasobów wymagających zamykania, multi-catch, rozszerzona składnia dla liczb, dedukcja typów (dla generyków). Poza tym wiadomo dodatki/usprawnienia w API (w tym już chyba sławny java.util.Objects z metodami do porównywania obiektów, obliczania hashcode itp.).

Class loader
Wsparcie dla współbieżnych class loaderów! :-)

Współbieżność
Dodano nowy framework ForkJoin przeznaczony dla aplikacji z intensywnymi obliczeniami. Posiada dobre wsparcie dla maszyn wieloprocesorowych i jest niezależny od platformy. + dodatki w standardowym API.

I18N
Wsparcie dla Unicode 6.0.0


To były główne zmiany, poza tym różnorakie zmiany w: java.util.loggingjava.util.regex, java.net, JMX, java.util.zip, bezpieczeństwie (obsługa TLS 1.2) oraz dodatki do Swinga i AWT.

Jak widać ostatecznie domknięcia nie zmieściły się w wersji finalnej. To samo tyczy się projektu Jigsaw czyli modularyzacji JDK (co mnie bardzo zdziwiło, bo myślałem, że to pewniak). Jestem z tego powodu bardzo zawiedziony, bo to dla mnie były właśnie te killing-features, które wprowadziłyby nowy blask językowi.

No cóż... z nadzieją musimy obserwować rozwój specyfikacji Javy 8... :-/

Brak komentarzy:

Prześlij komentarz