Conhecendo o Java 8

43
Java 8 Conhecendo as principais novidades

description

A nova versão do Java está cheia de novidades que valem a pena conhecermos. Nesta palestra, conversaremos sobre as novas APIs de Data Hora e Stream, e veremos as principais mudanças que deixaram a linguagem mais fluente, dinâmica e poderosa.

Transcript of Conhecendo o Java 8

Page 1: Conhecendo o Java 8

Java 8Conhecendo as principais novidades

Page 2: Conhecendo o Java 8

Quem sou eu

Page 3: Conhecendo o Java 8

Agenda

1. Como o Java evolui?2. A nova API de Data e Hora3. Default Methods e Functional Interfaces4. O que são Lambdas?5. Method Reference6. Streams

Page 4: Conhecendo o Java 8

1. Como o Java evolui?

Page 5: Conhecendo o Java 8

Java SE Java EE

● Linguagem Java● Compilador● Máquina Virtual

● Bibliotecas padronizadas

● Servidor de Aplicação

Page 6: Conhecendo o Java 8

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

Page 7: Conhecendo o Java 8

Especificação Implementação

JPA Hibernate, Eclipse Link ...

JSF

Servidor Java EE

JVM

Mojarra, MyFaces ...

Wild Fly, Glassfish, TomEE

OpenJDK, HotSpot, JRockit

Page 8: Conhecendo o Java 8
Page 9: Conhecendo o Java 8
Page 10: Conhecendo o Java 8

2. A nova API de Data e Hora

Page 11: Conhecendo o Java 8

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?

Page 12: Conhecendo o Java 8

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

Page 13: Conhecendo o Java 8

java.time.LocalDate Java 8.0

● Fácil de Usar● Design fluente● Imutável, thread-safe● ISO 8601 – Formato: ANO-MES-DIA● Dezembro é 12!

Page 14: Conhecendo o Java 8

// qual foi o dia da semana do último natal?

Page 15: Conhecendo o Java 8

// qual foi o dia da semana do último natal?

Page 16: Conhecendo o Java 8

// trabalhando com períodos

Page 17: Conhecendo o Java 8

// 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

Page 18: Conhecendo o Java 8

3. Default Methods e Functional Interfaces

Page 19: Conhecendo o Java 8

Default Methods

Page 20: Conhecendo o Java 8

Default Methods

Page 21: Conhecendo o Java 8

Default Methods

Page 22: Conhecendo o Java 8

Default Methods

Page 23: Conhecendo o Java 8

Default Methods

Page 24: Conhecendo o Java 8

Functional Interfaces

etc...

Page 25: Conhecendo o Java 8

4. O que são Lambdas?

Page 26: Conhecendo o Java 8

Classe anônima

Page 27: Conhecendo o Java 8

Classe anônima

Page 28: Conhecendo o Java 8

Lambdas!

Page 29: Conhecendo o Java 8

Lambdas!

Page 30: Conhecendo o Java 8

Lambdas!

Page 31: Conhecendo o Java 8

Lambdas!

Page 32: Conhecendo o Java 8

Lambdas!

Page 33: Conhecendo o Java 8

Lambdas! Outros exemplos

Page 34: Conhecendo o Java 8

5. Method Reference

Page 35: Conhecendo o Java 8

Method Reference

Page 36: Conhecendo o Java 8

Method Reference

Page 37: Conhecendo o Java 8

6. Streams

Page 38: Conhecendo o Java 8

Streams

Page 39: Conhecendo o Java 8

Streams

Page 40: Conhecendo o Java 8

Streams

Page 41: Conhecendo o Java 8

Streams

Page 42: Conhecendo o Java 8

Para saber mais

Page 43: Conhecendo o Java 8

Obrigado! =)

Meu blog: rsaraiva.comMeu twitter: @rubenssaraiva