Java 8 e futuro

152 visualizações

Publicada em

Palestra sobre Java 8 ministrada no FISL 16 em Porto Alegre/RS, no dia 11 de julho de 2015

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
152
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Java 8 e futuro

  1. 1. Java 8 e o futuro Thiago Gonzaga ZUP IT @thiguetta
  2. 2. Quién soy jo? • Bacharel em ciência da computação pela UNESP • Desenvolvedor desde 2004, em Java desde 2007 • Evangelista Java, palestrante e entusiasta de tecnologias livres e Open Source. • Coordenador de Eventos do Grupo de Usuários Java. • Desenvolve Java na ZUP IT
  3. 3. Agenda • 20 anos de Java • Java como software livre. • Por que Java? • Métodos Default, classes anônimas e interfaces funcionais. • Expressão Lambda e Method Reference • Coleções e Streams • Opcionais, API de Data e APIs Legadas da Sun. • O que vem por ai: Java 9? • JCP e como contribuir • Faça o Java 9
  4. 4. Java como SL • Sun começou a liberar em 2006 (partes do código) • 2007 Java tornou-se livre de fato. • Oracle comprou a Sun em 2009. • Comunidade ficou apreensiva. • Oracle já informou que não irá fechar o código. • Com ajuda da comunidade as últimas bibliotecas ainda sob patente foram reimplementadas.
  5. 5. Por que Java? • De acordo com o Lifehacker • Java: One of the Most Practical Languages to Learn • "Once you've learned Java, you can learn other OOP languages pretty easily" • http://lifehacker.com/which-programming- language-should-i-learn-first-1477153665
  6. 6. Métodos Default Evoluir sem quebrar
  7. 7. (Re)Lembrando de Classes anônimas Implementar interfaces no ato da instanciação
  8. 8. Interfaces Funcionais Interfaces com uma única declaração de método
  9. 9. Expressões Lambda Notação de implementação de interfaces funcionais
  10. 10. (params) -> {bloco de código}
  11. 11. Interfaces Funcionais Comuns • Predicate<T> - expressão booleana. • Consumer<T> - processa um valor • Function<T, R> - recebe e retorna um valor
  12. 12. Method Reference Referência para métodos já implementados
  13. 13. Method Reference • Instancia • objeto::nomeDoMetodoInstancia • Estático • Classe::nomeDoMetodoEstatico • Construtor • Classe::new
  14. 14. Coleções • Novos métodos • forEach • removeIf • sort • replaceAll • stream
  15. 15. Stream • Principais métodos • map • reduce • filter • collect
  16. 16. Code
  17. 17. Nova API de Datas • Instant • Period • Duration • LocalDateTime • ZoneDateTime • DateFormatter
  18. 18. Optional Wrapper para evitar NullPointerException
  19. 19. Base64
  20. 20. Java 9 • Data de lançamento: 22/09/2016 • JSON API leve (JEP 198) • HTTP 2 e websockets (JEP 110) • API de processos do sistema operacional (JEP 102) • Melhoria de Locking de Monitores (JEP 143) • Cache de código segmentado (JEP 197) • Melhoria no processo de compilação (JEP 199) • Modularização do código da JDK (JEP 201) • Javadoc em HTML 5
  21. 21. JCP e como contribuir • JCP - Java Community Process (jcp.org) • Comitê que define os padrões de Java • Composto pelas principais empresas de TI do mundo e comunidade. • Brasil tem uma cadeira cativa ocupada pelo SOUJAVA • JSR - Java Specification Request • Adote uma JSR (https://glassfish.java.net/adoptajsr) • Adote a OpenJDK (https://java.net/projects/adoptopenjdk)
  22. 22. Obrigado Thiago Gonzaga @thiguetta thi_gonzaga@yahoo.com.br

×