Conhecendo o Java 8

Post on 01-Jul-2015

364 views 5 download

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

Java 8Conhecendo as principais novidades

Quem sou eu

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

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.comMeu twitter: @rubenssaraiva