palestra java 8 - v boot
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/vbootTRANSCRIPT
![Page 1: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/1.jpg)
Novidades do Java 8
![Page 2: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/3.jpg)
Agenda
● Fatos e números
● Principais novidades
● API Data
● Lambdas
● Stream
● Optional
![Page 4: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/4.jpg)
Revolucionário?
![Page 5: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/7.jpg)
18 anos de lamentação
![Page 8: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/9.jpg)
Pré Java 8
Pós Java 8
![Page 10: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/10.jpg)
Mais...
● LocalDate● LocalDateTime● ZonedDateTime● ChronoUnit● Period
Códigos...
![Page 11: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/13.jpg)
Pré Java 8
Pós Java 8
![Page 14: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/14.jpg)
Mais...
● Default Methods● Interfaces funcionais● Method references
Códigos...
![Page 15: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/15.jpg)
Stream
● Utilizada para realizar operações com coleções
● Operações de map-reduce e filter
![Page 16: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/16.jpg)
Pré Java 8
Pós Java 8
![Page 17: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/17.jpg)
Mais...
● Reduces● Map● Parallel● Collectors
Códigos...
![Page 18: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/18.jpg)
Optional
● Fim do NullPointerException?
Códigos...
![Page 19: Palestra Java 8 - V Boot](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.mx/reader031/viewer/2022013111/5565f68cd8b42a20158b50d0/html5/thumbnails/20.jpg)
Obrigado
Dúvidas?