Cod: JVA-030
Durata: 12 ore
Durata: 12 ore
Descriere
Limbajul Java a trecut printr-o serie de schimbari majore in versiunea 8. Un numar mare de facilitati noi au fost introduse in acesta versiune pentru a introduce elemente de programare functionala. Utilizarea acestora implica o abordare diferita in ceea ce priveste programarea si o intelegere mai profunda a principiilor din spate.Acest training este dezvoltat pentru a oferi participantilor toate informatiile de care au nevoie pentru a intelege Java 8. Printre altele cursul acopera expresiile lambda, stream-uri de date, procesarea stream-urilor de date prin intermediul map-filter-reduce, programarea asincrona si DateTime API. Fiecare arie include exercitii practice care sa le ofere participantilor ocazia sa puna in practica aceste abilitati noi.
Subiecte curs
Expresii Lambda- Sintaxa Lambda
- Interfete functionale
- Package java.util.function si interfete functionale predefinite
- Method references
- Constructor references
- Default methods in interfete
- Default methods si diamond problem
Streams
- Ce este un Stream?
- Cum dezvoltam un Stream
- Abordarea Map/Filter/Reduce
- Map/Filter/Aggregate
- Aggregation functions
- Reduce in procesarea secventiala si paralela
- Metoda forEach
- Consumers chaining
- Predicates
- Metoda peek
- map operation
- flatmap operation
- aggregation si reduction
- Optional type
- Collectors
- Utilizarea collectors ca group by
- IntStream alte special streams
- Random stream
- Parallel streams
Fork/Join framework
- ForkJoinPool
- Clase folosite Fork/Join
- Exemplu Fork/Join
- Fork/Join si parallel stream processing: benchmarks
Date and Time API
- Provocari cu Date and Calendar in Java 8
- LocalDate, LocalTime, LocalDateTime
- Instant class
- Clock class
- ZonedDateTime
- DayOfWeek class
- Duration class
- Period class
Programare asincrona
- Provocari legate de multithreading
- Programare paralela si asincrona
- Avantajelea abordarii asincrone
- Abordarea Java 1 pe multithreading
- Abordarea Java 5: Future class
- Abordarea Java 8 CompletableFuture class
- Data flow ca pipeline
- Cum incepem mai multe pipelines in paralel
- Composing futures
- Combining futures
- Metode Synchronous si asynchronous CompletableFuture
- Utilizarea anyOf/applyToEither
- Sumar al metodelor CompletableFuture
- Abordarea exceptiilor in CompletableFuture
- Folosirea checkpoints in method handling
- Cancellation of CompletableFuture
- Utilizarea CompletableFuture in real-life data flow processing
- Asynchronous APIs in Java