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
Grupa docelowa: developerzy
architekci
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ą koncepcji 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ń


Wyrażam zgodę na przetwarzania danych osobowych zgodnie z ustawą o ochronie danych osobowych w związku z wysłaniem zapytania przez formularz kontaktowy.

Podanie danych jest dobrowolne ale niezbędne do przetworzenia zapytania. Zastałem/am poinformowany/na, że przysługuje mi prawo dostępu do swoich danych, możliwości ich poprawienia, żądania zaprzestania ich przetwarzania.

Administratorem danych osobowych jest Bottega IT Minds, ul. Jana Sawy 2, 20-632 Lublin.


Klauzula informacyjna