java 8 e futuro
Post on 19-Jan-2017
153 Views
Preview:
TRANSCRIPT
Java 8 e o futuroThiago Gonzaga ZUP IT @thiguetta
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
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
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.
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
Métodos DefaultEvoluir sem quebrar
(Re)Lembrando de Classes anônimasImplementar interfaces no ato da instanciação
Interfaces FuncionaisInterfaces com uma única declaração de método
Expressões LambdaNotação de implementação de interfaces funcionais
(params) -> {bloco de código}
Interfaces Funcionais Comuns
• Predicate<T> - expressão booleana.
• Consumer<T> - processa um valor
• Function<T, R> - recebe e retorna um valor
Method ReferenceReferência para métodos já implementados
Method Reference• Instancia
• objeto::nomeDoMetodoInstancia
• Estático
• Classe::nomeDoMetodoEstatico
• Construtor
• Classe::new
Coleções• Novos métodos
• forEach
• removeIf
• sort
• replaceAll
• stream
Stream
• Principais métodos
• map
• reduce
• filter
• collect
Code
Nova API de Datas• Instant
• Period
• Duration
• LocalDateTime
• ZoneDateTime
• DateFormatter
OptionalWrapper para evitar NullPointerException
Base64
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
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)
top related