evolução plataforma java
TRANSCRIPT
![Page 1: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/1.jpg)
Evolução Plataforma Java
Thiago Osório
![Page 2: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/2.jpg)
Thiago Osório
• Bacharel em Ciência da Computação pela UFMT
• 2 anos de experiência em desenvolvimento Java Web
• Analista de Sistemas pela Totem TI
![Page 3: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/3.jpg)
Agenda
• Evolução do Java: Principais releases
• Por que Lambda e Stream API ?
• Interfaces Funcionais
• Expressões Lambda
• Stream API
![Page 4: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/4.jpg)
![Page 5: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/5.jpg)
• Surgimento do Java
• Write once, run anywhere
Evolução da Plataforma
![Page 6: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/6.jpg)
![Page 7: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/7.jpg)
Principais releases
![Page 8: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/8.jpg)
Java 8
• Extensão virtual
• Expressão Lambda
• Stream API
• API Data e Hora
• Nashhorn JavaScript Engine
![Page 9: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/9.jpg)
Por que lambda e Stream API ?
• Evolução da linguagem
– Vossemecê Vosmecê Você VC...C
• Altere a posição dos elementos de uma lista de alunos de tal forma que a
idade do elemento seja maior do que a idade do elemento sucessor;
• Ordene a lista de alunos pela idade;
• “Ordenar”
![Page 10: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/10.jpg)
Por que lambda e Stream API ?
• Expressões Lambda ajudam a eliminar códigos repetitivos
• Stream API permite o encadeamento de operações sobre conjuntos de elementos. Também permite o processamento paralelo ou sequencial em coleções
![Page 11: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/11.jpg)
![Page 12: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/12.jpg)
Interfaces Funcionais
• Interfaces com apenas um método
• Interface antiga, conceito novo
![Page 13: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/13.jpg)
Expressões Lambda
• Resolver o problema ou resolver da melhor maneira ?
• Código correto garante a melhor abstração ?
![Page 14: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/14.jpg)
Expressões Lambda • Abstração para Filtrar uma lista por um critério
![Page 15: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/15.jpg)
Expressões Lambda
• Boa abstração garante um bom código ?
![Page 16: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/16.jpg)
![Page 17: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/17.jpg)
Expressões Lambda
• Compare
• Melhor abstração com melhor código!
![Page 18: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/18.jpg)
Expressões Lambda
• Apenas “enxugar código” ?
– Utiliza Nashorn (API de JavaScript) parar tornar a execução mais eficiente
• Promoveu mudanças coordenadas na VM, compilador e APIs;
![Page 19: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/19.jpg)
Stream API
• Paralelismo
– Grandes tarefas em subtarefas menores;
• Collection vs Stream
• Java.util.Stream
• Agregate Operation
– Filter, map, reduce, find
– Intermediate Operation
– Terminal Operation
![Page 20: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/20.jpg)
Stream API
![Page 21: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/21.jpg)
Stream API
• Encadeamento de operações
![Page 22: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/22.jpg)
![Page 23: Evolução Plataforma Java](https://reader033.vdocuments.net/reader033/viewer/2022042716/55abdbac1a28abf02f8b4602/html5/thumbnails/23.jpg)
Dúvidas