SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Java 8 
Conhecendo as principais novidades
Quem sou eu
Agenda 
1. Como o Java evolui? 
2. A nova API de Data e Hora 
3. Default Methods e Functional Interfaces 
4. O que são Lambdas? 
5. Method Reference 
6. Streams
1. Como o Java evolui?
Java SE Java EE 
● Linguagem Java 
● Compilador 
● Máquina Virtual 
● Bibliotecas 
padronizadas 
● Servidor de Aplicação
Especificação Implementação 
● JCP - Process 
● JSR 337 - Spec 
● Especificação de 
Referência 
● Expert Group e 
Contribuidores 
● Implementações de 
fornecedores 
● Precisam seguir o 
padrão 
● Liberdade para 
implementar
Especificação Implementação 
JPA Hibernate, Eclipse Link ... 
JSF 
Servidor Java EE 
JVM 
Mojarra, MyFaces ... 
Wild Fly, Glassfish, TomEE 
OpenJDK, HotSpot, JRockit
2. A nova API de Data e Hora
java.util.Date Java 1.0 
● Que 12 se refere ao ano, mês ou dia? 
● Mês 12 não é dezembro, é janeiro! 
● Ano 12 não é ano 12, é 1913! 
● Há um horário na data? 
● Que timezone é esse?
java.util.Calendar Java 1.1 
… 
● Mutável e não thread-safe 
● Bastante verboso 
● Não pode ser formatado, usa Date 
● Não pode ser criado a partir de um Date 
● Possui bugs e problemas de performance
java.time.LocalDate Java 8.0 
● Fácil de Usar 
● Design fluente 
● Imutável, thread-safe 
● ISO 8601 – Formato: ANO-MES-DIA 
● Dezembro é 12!
// qual foi o dia da semana do último 
natal?
// qual foi o dia da semana do último 
natal?
// trabalhando com períodos
// o que mais? 
● Cálculos com datas e horas 
● Nível de nanosegundos 
● Fuso horário 
● Comparação (isAfter, isBefore, isEqual) 
● Duração 
● Formatação simples 
● Interoperações com Date e Calendar
3. Default Methods e 
Functional Interfaces
Default Methods 
…
Default Methods 
…
Default Methods
Default Methods
Default Methods
Functional Interfaces 
… 
etc...
4. O que são Lambdas?
Classe anônima
Classe anônima
Lambdas!
Lambdas!
Lambdas!
Lambdas!
Lambdas!
Lambdas! Outros exemplos
5. Method Reference
Method Reference
Method Reference
6. Streams
Streams
Streams
Streams
Streams
Para saber mais
Obrigado! =) 
Meu blog: rsaraiva.com 
Meu twitter: @rubenssaraiva

Mais conteúdo relacionado

Destaque

TDC 2014 - Java 8: Expressões Lambda e API de Stream
TDC 2014 - Java 8: Expressões Lambda e API de StreamTDC 2014 - Java 8: Expressões Lambda e API de Stream
TDC 2014 - Java 8: Expressões Lambda e API de StreamDanival Calegari
 
Java 8 - Expressões Lambda e Stream API - DevCamp 2014
Java 8 - Expressões Lambda e Stream API - DevCamp 2014Java 8 - Expressões Lambda e Stream API - DevCamp 2014
Java 8 - Expressões Lambda e Stream API - DevCamp 2014Danival Calegari
 
Aula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em JavaAula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em JavaAparicio Junior
 
Introdução à programação em Android e iOS - OOP Java
Introdução à programação em Android e iOS - OOP JavaIntrodução à programação em Android e iOS - OOP Java
Introdução à programação em Android e iOS - OOP JavaLuís Gustavo Martins
 
Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoRegis Magalhães
 
Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Claudio Martins
 
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave superLoiane Groner
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 

Destaque (12)

TDC 2014 - Java 8: Expressões Lambda e API de Stream
TDC 2014 - Java 8: Expressões Lambda e API de StreamTDC 2014 - Java 8: Expressões Lambda e API de Stream
TDC 2014 - Java 8: Expressões Lambda e API de Stream
 
Java 8 - Expressões Lambda e Stream API - DevCamp 2014
Java 8 - Expressões Lambda e Stream API - DevCamp 2014Java 8 - Expressões Lambda e Stream API - DevCamp 2014
Java 8 - Expressões Lambda e Stream API - DevCamp 2014
 
Por um Java mais funcional
Por um Java mais funcionalPor um Java mais funcional
Por um Java mais funcional
 
Aula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em JavaAula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em Java
 
Introdução à programação em Android e iOS - OOP Java
Introdução à programação em Android e iOS - OOP JavaIntrodução à programação em Android e iOS - OOP Java
Introdução à programação em Android e iOS - OOP Java
 
Programando a felicidade
Programando a felicidadeProgramando a felicidade
Programando a felicidade
 
Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita Polimorfismo
 
Access vba
Access vbaAccess vba
Access vba
 
Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7
 
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 

Semelhante a Java 8: Novidades em Data, Lambdas e Streams

Java - Bibliotecas Date, Calendar e Time
Java - Bibliotecas Date, Calendar e TimeJava - Bibliotecas Date, Calendar e Time
Java - Bibliotecas Date, Calendar e TimeJefferson Lima
 
Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)Huge
 
Apresentação java
Apresentação javaApresentação java
Apresentação javamunosai
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
Java não é tão difícil quanto parece
Java não é tão difícil quanto pareceJava não é tão difícil quanto parece
Java não é tão difícil quanto parecejesuinoPower
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
 
Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7David Willian
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEBruno Borges
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para phpFabio B. Silva
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO IOs Fantasmas !
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01Daniel Alves
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01rollbackpt
 

Semelhante a Java 8: Novidades em Data, Lambdas e Streams (20)

Java - Bibliotecas Date, Calendar e Time
Java - Bibliotecas Date, Calendar e TimeJava - Bibliotecas Date, Calendar e Time
Java - Bibliotecas Date, Calendar e Time
 
Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)
 
Java20141215 17[1]
Java20141215 17[1]Java20141215 17[1]
Java20141215 17[1]
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Java não é tão difícil quanto parece
Java não é tão difícil quanto pareceJava não é tão difícil quanto parece
Java não é tão difícil quanto parece
 
Java 8 e futuro
Java 8 e futuroJava 8 e futuro
Java 8 e futuro
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Spring Roo
Spring RooSpring Roo
Spring Roo
 
Groovy stack
Groovy stackGroovy stack
Groovy stack
 
Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EE
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para php
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Academia java intensivo
Academia java intensivoAcademia java intensivo
Academia java intensivo
 
Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 

Java 8: Novidades em Data, Lambdas e Streams