20
Novidades do Java 8

Palestra Java 8 - V Boot

Embed Size (px)

DESCRIPTION

Palestra realizada no V Boot na Unoesc em Xanxerê. Algumas das principais novidades do Java 8 como: Lambda Stream Interfaces Funcionais Optional Reference Method Default Method. Códigos de exemplo disponíveis em https://github.com/forchesatto/vboot

Citation preview

Page 1: Palestra Java 8 - V Boot

Novidades do Java 8

Page 2: Palestra Java 8 - V Boot

Um pouco sobre mim...

● Aprendiz e entusiasta Java desde 2002.

● Trabalha ou só da aula?

● Sonho e realidade: Camtwo Sistemas.

● Java 8, muito a aprender.

about.me/andreforchesatto

Page 3: Palestra Java 8 - V Boot

Agenda

● Fatos e números

● Principais novidades

● API Data

● Lambdas

● Stream

● Optional

Page 4: Palestra Java 8 - V Boot

Revolucionário?

Page 5: Palestra Java 8 - V Boot

Fatos e números

● Nove milhões de desenvolvedores

● Três bilhões de dispositivos funcionam sob a tecnologia Java.

● 125 milhões de dispositivos de mídia baseados em Java foram desenvolvidos.

● 10 bilhões de Java Cards foram enviados desde que o produto foi lançado.

fonte: http://www.oracle.com/br/corporate/press/pr-br-march-25-2014-2177918-ptb.html

Page 6: Palestra Java 8 - V Boot

Principais novidades Java SE

● Projeto Lambda

● API Stream

● API Collection

● API Data e Hora

● Function

● JavaScript Nashorn

● Perfis Compactos

● Acabou o PermGem

Page 7: Palestra Java 8 - V Boot

18 anos de lamentação

Page 8: Palestra Java 8 - V Boot

java.time

● Chega de Date ou Calendar

● Nova API de Datas

● Operações com data simplificadas e

otimizadas

● Baseada no Joda-Time (joda.org/joda-time)

Page 9: Palestra Java 8 - V Boot

Pré Java 8

Pós Java 8

Page 10: Palestra Java 8 - V Boot

Mais...

● LocalDate● LocalDateTime● ZonedDateTime● ChronoUnit● Period

Códigos...

Page 11: Palestra Java 8 - V Boot

Lambda

● Apenas para interfaces funcionais;● Mudanças coordenadas no compilador, VM

e API;● Ajudam a remover código repetido;

Page 12: Palestra Java 8 - V Boot

Lambda

(parâmetros) -> código

(final String nome, final String sobrenome) -> código

(String nome, int idade)->código

(nome)->código

nome ->códigoTipos inferido

Page 13: Palestra Java 8 - V Boot

Pré Java 8

Pós Java 8

Page 14: Palestra Java 8 - V Boot

Mais...

● Default Methods● Interfaces funcionais● Method references

Códigos...

Page 15: Palestra Java 8 - V Boot

Stream

● Utilizada para realizar operações com coleções

● Operações de map-reduce e filter

Page 16: Palestra Java 8 - V Boot

Pré Java 8

Pós Java 8

Page 17: Palestra Java 8 - V Boot

Mais...

● Reduces● Map● Parallel● Collectors

Códigos...

Page 18: Palestra Java 8 - V Boot

Optional

● Fim do NullPointerException?

Códigos...

Page 19: Palestra Java 8 - V Boot

Algumas referências

http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

http://www.casadocodigo.com.br/products/livro-java8

http://blog.caelum.com.br/o-minimo-que-voce-deve-saber-de-java-8/

http://pt.slideshare.net/martyhall/java-8-tutorial-lambda-expressions-part-1

Page 20: Palestra Java 8 - V Boot

Obrigado

Dúvidas?