Java 11 LTS - nowy standard. Nowości i migracja z Java 8

Kod: Java-SE-java11
Kategoria: Java Standard Edition
Forma: 40% wykłady / 60% ćwiczenia
Czas trwania: 3 dni
Odbiorcy: architekci, developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Szkolenie jest przeznaczone dla programistów i projektantów, którzy na co dzień programują w Javie i chcą być gotowi do migracji rozwiązań z Java 8 do nowej wersji LTS.

Program szkolenia oprócz nowej koncepcji modułowości (projekt Jigsaw) zawiera również zmiany i nowości w języku, kompilatorze oraz maszynie wirtualnej.

Duża liczba ćwiczeń pozwoli na praktyczne zapoznanie się omawianymi zagadnieniami i gotowość do ich wykorzystania w rozwijanych projektach.

Uwaga. W przypadku migracji z Java 7 (lub starszej) zalecane jest rozszerzenie programu o nowości w Java 8 oraz programowanie funkcyjne (w zależności od wybranego zakresu dodatkowe 1 lub 2 dni). Dodatkowo w przypadku migracji z Java 9 lub 10, szkolenie również może być częściowo skrócone poprzez skrótowe potraktowanie znanych elementów.

Wyróżniki szkolenia

  • Zrozumienie korzyści oraz wyzwań związanych z nową koncepcją modułowości
  • Poznanie sposobów efektywnego wykorzystania nowości i ulepszeń w Java 9/10/11
  • Dostosowanie/migrację istniejących rozwiązań z Java 8/9/10 do Java 11+

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Przegląd kluczowych obszarów zmian i nowości
    1. Java 9
    2. Java 10
    3. Java 11
  2. Zmiany w języku - Java 9/10/11
    1. inferencja typu zmiennych lokalnych
      1. także w lambdach
    2. prywatne metody w interfejsach
    3. bardziej zwięzłe try-with-resources
    4. "<>" w klasach anonimowych
    5. "_" - niedozwolone w nazwie zmiennej
  3. Większe zmiany w API - Java 9/10/11
    1. process API
    2. reactive streams
    3. stack walker
    4. uspraweniania w stosie sieciowym - nowy klient HTTP - `java.net.http`
    5. Variable Handles - częściowy zamiennik dla `sun.misc.Unsafe`
    6. logging redirection
    7. Nashhorn deprecation
  4. Pozostałe zmiany w API - Java 9/10/11
    1. kolekcje
    2. strumienie
    3. łańcuchy tekstowe
    4. operacje na plikach
    5. usunięcie przestarzałego API
  5. Wprowadzenie do modułowości
    1. motywacja i ogólne założenia (JSR 376 - Java Platform Module System)
    2. silna enkapsulacja
    3. zależności między modułami
    4. podział na moduły w JDK
    5. tryby działania
    6. narzędzia wspomagające (jdeps, ...)
  6. Praca z modułami
    1. definiowanie modułów
    2. używanie modułów
    3. ograniczenia w dostępie
    4. refleksja
    5. nienazwane moduły
  7. Migracja kodu do Java 11
    1. tryb pobłażliwości
    2. prywatne API (`sun.*`)
      1. wybrane opcje migracji
    3. praca z niezmodularyzowanych kodem
    4. modularyzacja aplikacji
      1. dobre praktyki
  8. Zmiany w JVM
    1. multi-release JAR
    2. zmiany związane z wydajnością
    3. G1 jako podstawowy algorytm Garbage Collection
      1. Parallel Full GC for G1
    4. Epsilon: An Arbitrarily Low-Overhead Garbage Collector
    5. zmiany w kompilatorze
    6. zmiany w wersjonowaniu
    7. Flight Recorder
    8. Low-Overhead Heap Profiling
    9. Experimental Java-Based JIT Compiler
    10. Thread-Local Handshakes
    11. Garbage-Collector Interface
    12. Heap Allocation on Alternative Memory Devices
    13. Ahead-of-Time Compilation
    14. Application Class-Data Sharing
  9. Inne zmiany
    1. REPL/jshell
    2. kryptografia - w tym krzywe eliptyczne
    3. nowszy Unicode
    4. uruchamianie plików .java
    5. TLS 1.3
    6. Time-Based Release Versioning
  10. Powiązane aspekty
    1. licencjowanie i okres wsparcia - Oracle JDK vs OpenJDK
      1. wybór dystrybucji do produkcyjnego zastosowania
    2. wsparcie IDE
    3. wsparcie systemów budowania
      1. Gradle
      2. Maven
    4. wsparcie w popularnych frameworkach i bibliotekach
    5. budowanie mniejszych obrazów uruchomieniowych (run-time images)
  11. Większe planowane zmiany na Java 12+
    1. Raw String Literals
    2. Switch Expressions
  12. Nowości w Java 8 i programowanie funkcyjne (opcjonalnie przy migracji z Java 5/6/7)
    1. zakres tego punktu do indywidualnego ustalenia w oparciu o szkolenie "Java - myślenie funkcjyjne"


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.