SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Globalcode – Open4education
Atualizando para Java 8 na prática
Filipe Portes
@filipeportes
Globalcode – Open4education
@filipeportes
Desenvolvedor FullStack e líder de equipe na
TecSinapse
Mais de 8 anos de XP com dev e arquitetura Java
JUGLeader do GoJava - @gojava
Palestrante em eventos como TDC e JavaOne
LATAM
Como churrasco e tomo cerveja a domicílio em
todo território nacional
Globalcode – Open4education
Atualização para Java 8
Lançado mundialmente dia 25/03/2014, 2+ anos
Principais novidades dessa atualização
Interfaces Funcionais
Lambda Expressions
Default methods
Api Stream e Collectors
Nova java.time
Removal of PermGen
Melhorias de segurança, Type Annotations, etc...
Fonte: http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html
Globalcode – Open4education
Functional Interfaces
Importante para possibilitar as lambda expressions
Interfaces com um único método abstrato. Este é um
requisito obrigatório.
Exemplo: Consumer. Assim no forEach o compilador sabe
o método que deverá ser implementado no lambda.
Funciona só em interfaces novas do Java 8? Não.
Diversas interfaces que já era utilizadas tornaram-se
funcionais
Para as novas, e as suas implementações, temos a
anotação opcional @FunctionalInterface.
Globalcode – Open4education
Sort tradicional
public static void main(String[] args) {
List<Ingresso> ingressos = Arrays.asList(
new Ingresso("Festa 1", 100.0),
new Ingresso("Festa 2", 150.0),
new Ingresso("Festa 3", 200.0));
Collections.sort(inscricoes, new Comparator<Ingresso>() {
@Override
public int compare(Ingresso o1, Ingresso o2) {
return o1.getNome().compareTo(o2.getNome());
}
});
}
Globalcode – Open4education
Lambda
public static void main(String[] args) {
List<Ingresso> ingressos = Arrays.asList(
new Ingresso("Festa 1", 100.0),
new Ingresso("Festa 2", 150.0),
new Ingresso("Festa 3", 200.0));
Collections.sort(inscricoes, (o1, o2) -> {
return o1.getNome().compareTo(o2.getNome());
});
}
Globalcode – Open4education
Lambda
public static void main(String[] args) {
List<Ingresso> ingressos = Arrays.asList(
new Ingresso("Festa 1", 100.0),
new Ingresso("Festa 2", 150.0),
new Ingresso("Festa 3", 200.0));
Collections.sort(inscricoes, (o1, o2) -> return
o1.getNome().compareTo(o2.getNome());
}
Globalcode – Open4education
Lambdas
public static void main(String[] args) {
List<Ingresso> ingressos = Arrays.asList(
new Ingresso("Festa 1", 100.0),
new Ingresso("Festa 2", 150.0),
new Ingresso("Festa 3", 200.0));
ingressos.forEach(ingresso -> System.out.println(ingresso));
}
Globalcode – Open4education
Lambdas
public static void main(String[] args) {
List<Ingresso> ingressos = Arrays.asList(
new Ingresso("Festa 1", 100.0),
new Ingresso("Festa 2", 150.0),
new Ingresso("Festa 3", 200.0));
ingressos.forEach(ingresso -> System.out.println(ingresso));
}
A não ainda é muito código?
Globalcode – Open4education
Lambdas
public static void main(String[] args) {
List<Ingresso> ingressos = Arrays.asList(
new Ingresso("Festa 1", 100.0),
new Ingresso("Festa 2", 150.0),
new Ingresso("Festa 3", 200.0));
ingressos.forEach(System.out::println);
}
Globalcode – Open4education
Default methods
Novos métodos, com implementação, adicionados às
interfaces Java, como em Collections e Map.
Veja por exemplo o forEach:
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
Outros: removeIf, sort, compare, computeIfPresente.
Você pode criar default methods em suas interfaces.
Globalcode – Open4education
Streams & Collectors
Fonte: https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html
https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.htm
Trabalhar com coleções sempre envolve muito código.
Em muitas linguagens temos por exemplo um ‘filter’ pra
facilitar nossa vida.
A lib guava tem a FluentIterable com funcionalidades
bastante similares
Collectors implementa um conjunto de reduções úteis para
trabalhar com coleções como agrupamentos, somatórios e
transformações.
Globalcode – Open4education
Filtrar da forma tradicional
public static void main(String[] args) {
List<Ingresso> ingressos = new ArrayList<>();
ingressos.add(new Ingresso("Festa 1", 100.0));
ingressos.add(new Ingresso("Festa 2", 150.0));
ingressos.add(new Ingresso("Festa 3", 180.0));
List<Ingresso> ingressosBaratos = new ArrayList<>();
for(Ingresso ingresso : ingressos) {
if(ingresso.getValor() < 120) {
ingressosBaratos.add(ingresso);
}
}
}
Globalcode – Open4education
Filtrando com Stream e
Collectors
public static void main(String[] args) {
List<Ingresso> ingressos = new ArrayList<>();
ingressos.add(new Ingresso("Festa 1", 100.0));
ingressos.add(new Ingresso("Festa 2", 150.0));
ingressos.add(new Ingresso("Festa 3", 180.0));
List<Ingresso> ingressosBaratos = ingressos.stream()
.filter( i -> i.getValor() < 120 )
.collect(Collectors.toList());
}
Globalcode – Open4education
Nova api java.time
Inspirada na api joda.time
Mais facilidade para fazer operações com datas
Novas classes LocalDate, LocalDateTime, YearMonth, Year,
Month, etc..
Suporte a fuso horário
Obter a data de amanhã: LocalDate.now().plusDays(1);
Calcular um período entre duas datas, como uma idade:
Period periodo = Period.between(dtNascimento, hoje);
Fonte: http://blog.caelum.com.br/conheca-a-nova-api-de-datas-do-java-8/
Globalcode – Open4education
PermGen space?
Não existe mais o Permanent Generation (PermGen) space
Metaspace: O novo espaço de memória
Não precisa verificar e tunar a memória nunca mais!!!
#SQN
O metaspace passa a ser limitado pela quantidade de memória fisica na
máquina
Novo parametro MaxMetaspaceSize para limitar esse uso
Basicamente: antes era pouco por default, agora é muito por default
Fonte: https://dzone.com/articles/java-8-permgen-metaspace
https://www.infoq.com/news/2013/03/java-8-permgen-metaspace
Globalcode – Open4education
Mão na massa
Código: https://github.com/filipeportes/adopting-java8
Globalcode – Open4education
Obrigado!
Gojava
Slack → https://gojavajug.slack.com
Facebook → https://www.facebook.com/gojava
Twitter → https://twitter.com/gojava
Filipe
Twiiter → https://twitter.com/filipeportes
Email → omeuefilipe@gmail.com
GitHub → https://github.com/filipeportes

Weitere ähnliche Inhalte

Was ist angesagt?

Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Introdução ao Respect\Validation (1.0)
Introdução ao Respect\Validation (1.0)Introdução ao Respect\Validation (1.0)
Introdução ao Respect\Validation (1.0)Henrique Moody
 
Implementação em ActionScript 3 do Protocolo IRC
Implementação em ActionScript 3 do Protocolo IRCImplementação em ActionScript 3 do Protocolo IRC
Implementação em ActionScript 3 do Protocolo IRCJosé Travado
 
Programação Desktop: Revisão Core Java
Programação Desktop: Revisão Core JavaProgramação Desktop: Revisão Core Java
Programação Desktop: Revisão Core JavaElaine Cecília Gatto
 
Introdução a Redes de Computadores - 8 - Nível de Transporte - Sockets
Introdução a Redes de Computadores - 8 - Nível de Transporte - SocketsIntrodução a Redes de Computadores - 8 - Nível de Transporte - Sockets
Introdução a Redes de Computadores - 8 - Nível de Transporte - SocketsAndre Peres
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPLuis Gustavo Almeida
 
[SCTI 2011] - CLI: sobrevivendo na linha de comando
[SCTI 2011] - CLI: sobrevivendo na linha de comando[SCTI 2011] - CLI: sobrevivendo na linha de comando
[SCTI 2011] - CLI: sobrevivendo na linha de comandoSCTI UENF
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPGuilherme Blanco
 
Criando APIs usando o micro-framework Respect
Criando APIs usando o micro-framework RespectCriando APIs usando o micro-framework Respect
Criando APIs usando o micro-framework RespectIvan Rosolen
 
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...Paulo Henrique Lerbach Rodrigues
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsGuilherme Blanco
 
Programa 3
Programa 3Programa 3
Programa 3yito24
 
Perl Moderno, dia3
Perl Moderno, dia3Perl Moderno, dia3
Perl Moderno, dia3garux
 
Hashing enderecamento aberto - operações
Hashing enderecamento aberto - operaçõesHashing enderecamento aberto - operações
Hashing enderecamento aberto - operaçõesElaine Cecília Gatto
 

Was ist angesagt? (20)

PHP ao Extremo
PHP ao ExtremoPHP ao Extremo
PHP ao Extremo
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
PHPT
PHPTPHPT
PHPT
 
Introdução ao Respect\Validation (1.0)
Introdução ao Respect\Validation (1.0)Introdução ao Respect\Validation (1.0)
Introdução ao Respect\Validation (1.0)
 
Implementação em ActionScript 3 do Protocolo IRC
Implementação em ActionScript 3 do Protocolo IRCImplementação em ActionScript 3 do Protocolo IRC
Implementação em ActionScript 3 do Protocolo IRC
 
Programação Desktop: Revisão Core Java
Programação Desktop: Revisão Core JavaProgramação Desktop: Revisão Core Java
Programação Desktop: Revisão Core Java
 
Introdução a Redes de Computadores - 8 - Nível de Transporte - Sockets
Introdução a Redes de Computadores - 8 - Nível de Transporte - SocketsIntrodução a Redes de Computadores - 8 - Nível de Transporte - Sockets
Introdução a Redes de Computadores - 8 - Nível de Transporte - Sockets
 
PHP 7
PHP 7PHP 7
PHP 7
 
Clean Code Matters!
Clean Code Matters!Clean Code Matters!
Clean Code Matters!
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHP
 
[SCTI 2011] - CLI: sobrevivendo na linha de comando
[SCTI 2011] - CLI: sobrevivendo na linha de comando[SCTI 2011] - CLI: sobrevivendo na linha de comando
[SCTI 2011] - CLI: sobrevivendo na linha de comando
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHP
 
Criando APIs usando o micro-framework Respect
Criando APIs usando o micro-framework RespectCriando APIs usando o micro-framework Respect
Criando APIs usando o micro-framework Respect
 
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
 
Tabela Hash com Lista Encadeada
Tabela Hash com Lista EncadeadaTabela Hash com Lista Encadeada
Tabela Hash com Lista Encadeada
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
Lista duplamente encadeada dinamica
Lista duplamente encadeada dinamicaLista duplamente encadeada dinamica
Lista duplamente encadeada dinamica
 
Programa 3
Programa 3Programa 3
Programa 3
 
Perl Moderno, dia3
Perl Moderno, dia3Perl Moderno, dia3
Perl Moderno, dia3
 
Hashing enderecamento aberto - operações
Hashing enderecamento aberto - operaçõesHashing enderecamento aberto - operações
Hashing enderecamento aberto - operações
 

Andere mochten auch

TDC2016POA | Trilha Java - Java Fantástico! Trazendo recursos de programação ...
TDC2016POA | Trilha Java - Java Fantástico! Trazendo recursos de programação ...TDC2016POA | Trilha Java - Java Fantástico! Trazendo recursos de programação ...
TDC2016POA | Trilha Java - Java Fantástico! Trazendo recursos de programação ...tdc-globalcode
 
TDC2016POA | Trilha Java - Introdução ao Byteman
TDC2016POA | Trilha Java - Introdução ao BytemanTDC2016POA | Trilha Java - Introdução ao Byteman
TDC2016POA | Trilha Java - Introdução ao Bytemantdc-globalcode
 
TDC2016POA | Trilha Programacao Funcional - Considere usar Clojure/ClojureScr...
TDC2016POA | Trilha Programacao Funcional - Considere usar Clojure/ClojureScr...TDC2016POA | Trilha Programacao Funcional - Considere usar Clojure/ClojureScr...
TDC2016POA | Trilha Programacao Funcional - Considere usar Clojure/ClojureScr...tdc-globalcode
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Criando a mágica, como funcionam os HMDs?
TDC2016SP - Criando a mágica, como funcionam os HMDs?TDC2016SP - Criando a mágica, como funcionam os HMDs?
TDC2016SP - Criando a mágica, como funcionam os HMDs?tdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Código funcional em Java: superando o hype
TDC2016SP - Código funcional em Java: superando o hypeTDC2016SP - Código funcional em Java: superando o hype
TDC2016SP - Código funcional em Java: superando o hypetdc-globalcode
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
TDC2016POA | Trilha Education - Jogos na Educação, onde estamos errando?
TDC2016POA | Trilha Education -  Jogos na Educação, onde estamos errando?TDC2016POA | Trilha Education -  Jogos na Educação, onde estamos errando?
TDC2016POA | Trilha Education - Jogos na Educação, onde estamos errando?tdc-globalcode
 
TDC2016POA | Trilha Analise de Negocios - Como fatiar seu produto em estórias...
TDC2016POA | Trilha Analise de Negocios - Como fatiar seu produto em estórias...TDC2016POA | Trilha Analise de Negocios - Como fatiar seu produto em estórias...
TDC2016POA | Trilha Analise de Negocios - Como fatiar seu produto em estórias...tdc-globalcode
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinkingtdc-globalcode
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinkingtdc-globalcode
 
TDC2016SP - Nova API de concorrencia do Java 8
TDC2016SP - Nova API de concorrencia do Java 8TDC2016SP - Nova API de concorrencia do Java 8
TDC2016SP - Nova API de concorrencia do Java 8tdc-globalcode
 
TDC2016POA | Trilha Programacao Funcional - Ramda JS como alternativa a under...
TDC2016POA | Trilha Programacao Funcional - Ramda JS como alternativa a under...TDC2016POA | Trilha Programacao Funcional - Ramda JS como alternativa a under...
TDC2016POA | Trilha Programacao Funcional - Ramda JS como alternativa a under...tdc-globalcode
 
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...tdc-globalcode
 
TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...
TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...
TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...tdc-globalcode
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinkingtdc-globalcode
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarialtdc-globalcode
 
TDC2016POA | Trilha Education - O ensino de programacao, robotica e automacao...
TDC2016POA | Trilha Education - O ensino de programacao, robotica e automacao...TDC2016POA | Trilha Education - O ensino de programacao, robotica e automacao...
TDC2016POA | Trilha Education - O ensino de programacao, robotica e automacao...tdc-globalcode
 

Andere mochten auch (20)

TDC2016POA | Trilha Java - Java Fantástico! Trazendo recursos de programação ...
TDC2016POA | Trilha Java - Java Fantástico! Trazendo recursos de programação ...TDC2016POA | Trilha Java - Java Fantástico! Trazendo recursos de programação ...
TDC2016POA | Trilha Java - Java Fantástico! Trazendo recursos de programação ...
 
TDC2016POA | Trilha Java - Introdução ao Byteman
TDC2016POA | Trilha Java - Introdução ao BytemanTDC2016POA | Trilha Java - Introdução ao Byteman
TDC2016POA | Trilha Java - Introdução ao Byteman
 
TDC2016POA | Trilha Programacao Funcional - Considere usar Clojure/ClojureScr...
TDC2016POA | Trilha Programacao Funcional - Considere usar Clojure/ClojureScr...TDC2016POA | Trilha Programacao Funcional - Considere usar Clojure/ClojureScr...
TDC2016POA | Trilha Programacao Funcional - Considere usar Clojure/ClojureScr...
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Criando a mágica, como funcionam os HMDs?
TDC2016SP - Criando a mágica, como funcionam os HMDs?TDC2016SP - Criando a mágica, como funcionam os HMDs?
TDC2016SP - Criando a mágica, como funcionam os HMDs?
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Código funcional em Java: superando o hype
TDC2016SP - Código funcional em Java: superando o hypeTDC2016SP - Código funcional em Java: superando o hype
TDC2016SP - Código funcional em Java: superando o hype
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
TDC2016POA | Trilha Education - Jogos na Educação, onde estamos errando?
TDC2016POA | Trilha Education -  Jogos na Educação, onde estamos errando?TDC2016POA | Trilha Education -  Jogos na Educação, onde estamos errando?
TDC2016POA | Trilha Education - Jogos na Educação, onde estamos errando?
 
TDC2016POA | Trilha Analise de Negocios - Como fatiar seu produto em estórias...
TDC2016POA | Trilha Analise de Negocios - Como fatiar seu produto em estórias...TDC2016POA | Trilha Analise de Negocios - Como fatiar seu produto em estórias...
TDC2016POA | Trilha Analise de Negocios - Como fatiar seu produto em estórias...
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinking
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinking
 
TDC2016SP - Nova API de concorrencia do Java 8
TDC2016SP - Nova API de concorrencia do Java 8TDC2016SP - Nova API de concorrencia do Java 8
TDC2016SP - Nova API de concorrencia do Java 8
 
TDC2016POA | Trilha Programacao Funcional - Ramda JS como alternativa a under...
TDC2016POA | Trilha Programacao Funcional - Ramda JS como alternativa a under...TDC2016POA | Trilha Programacao Funcional - Ramda JS como alternativa a under...
TDC2016POA | Trilha Programacao Funcional - Ramda JS como alternativa a under...
 
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
 
TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...
TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...
TDC2016POA | Trilha Banco de Dados - RavenDB: um banco de dados NoSQL de segu...
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinking
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarial
 
TDC2016POA | Trilha Education - O ensino de programacao, robotica e automacao...
TDC2016POA | Trilha Education - O ensino de programacao, robotica e automacao...TDC2016POA | Trilha Education - O ensino de programacao, robotica e automacao...
TDC2016POA | Trilha Education - O ensino de programacao, robotica e automacao...
 

Ähnlich wie TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!

Beljug2010
Beljug2010Beljug2010
Beljug2010UFPA
 
Leonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional InterfacesLeonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional InterfacesDevCamp Campinas
 
Palestra Novidades da linguagem C# 6
Palestra Novidades da linguagem C# 6Palestra Novidades da linguagem C# 6
Palestra Novidades da linguagem C# 6Renato Haddad
 
Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Giovanni Bassi
 
Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o JavascripMiquéias Amaro
 
O que há de novo no PHP 5.3
O que há de novo no PHP 5.3O que há de novo no PHP 5.3
O que há de novo no PHP 5.3Jose Berardo
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Michael Castillo Granados
 
Groovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessGroovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessRafael Farias Silva
 
Refatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaRefatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaEduardo Bregaida
 
As novidades do PHP5 (2005)
As novidades do PHP5 (2005)As novidades do PHP5 (2005)
As novidades do PHP5 (2005)Pablo Dall'Oglio
 

Ähnlich wie TDC2016POA | Trilha Java - Atualizando para Java 8 na prática! (20)

Beljug2010
Beljug2010Beljug2010
Beljug2010
 
Java 8 - New Features
Java 8 - New FeaturesJava 8 - New Features
Java 8 - New Features
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Leonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional InterfacesLeonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional Interfaces
 
Palestra Novidades da linguagem C# 6
Palestra Novidades da linguagem C# 6Palestra Novidades da linguagem C# 6
Palestra Novidades da linguagem C# 6
 
PostgreSQL 8.4
PostgreSQL 8.4PostgreSQL 8.4
PostgreSQL 8.4
 
Vraptor
VraptorVraptor
Vraptor
 
Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Apresentando o EcmaScript 6
Apresentando o EcmaScript 6
 
Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o Javascrip
 
Design patterns
Design patternsDesign patterns
Design patterns
 
O que há de novo no PHP 5.3
O que há de novo no PHP 5.3O que há de novo no PHP 5.3
O que há de novo no PHP 5.3
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
Groovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessGroovy para javeiros - Migração Painless
Groovy para javeiros - Migração Painless
 
Refactoring like a boss
Refactoring like a bossRefactoring like a boss
Refactoring like a boss
 
Flutter do zero a publicacao
Flutter do zero a publicacaoFlutter do zero a publicacao
Flutter do zero a publicacao
 
Refatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaRefatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completa
 
As novidades do PHP5 (2005)
As novidades do PHP5 (2005)As novidades do PHP5 (2005)
As novidades do PHP5 (2005)
 
NotORM
NotORMNotORM
NotORM
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 

Mehr von tdc-globalcode

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadetdc-globalcode
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucessotdc-globalcode
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPAtdc-globalcode
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinotdc-globalcode
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...tdc-globalcode
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicestdc-globalcode
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publicatdc-globalcode
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#tdc-globalcode
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocustdc-globalcode
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?tdc-globalcode
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golangtdc-globalcode
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QAtdc-globalcode
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciatdc-globalcode
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETtdc-globalcode
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8tdc-globalcode
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...tdc-globalcode
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#tdc-globalcode
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Coretdc-globalcode
 

Mehr von tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Kürzlich hochgeladen

PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Antero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaAntero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaPaula Duarte
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...AndreaCavalcante14
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfRavenaSales1
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 

Kürzlich hochgeladen (20)

PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Antero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaAntero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escrita
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 

TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!

  • 1. Globalcode – Open4education Atualizando para Java 8 na prática Filipe Portes @filipeportes
  • 2. Globalcode – Open4education @filipeportes Desenvolvedor FullStack e líder de equipe na TecSinapse Mais de 8 anos de XP com dev e arquitetura Java JUGLeader do GoJava - @gojava Palestrante em eventos como TDC e JavaOne LATAM Como churrasco e tomo cerveja a domicílio em todo território nacional
  • 3. Globalcode – Open4education Atualização para Java 8 Lançado mundialmente dia 25/03/2014, 2+ anos Principais novidades dessa atualização Interfaces Funcionais Lambda Expressions Default methods Api Stream e Collectors Nova java.time Removal of PermGen Melhorias de segurança, Type Annotations, etc... Fonte: http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html
  • 4. Globalcode – Open4education Functional Interfaces Importante para possibilitar as lambda expressions Interfaces com um único método abstrato. Este é um requisito obrigatório. Exemplo: Consumer. Assim no forEach o compilador sabe o método que deverá ser implementado no lambda. Funciona só em interfaces novas do Java 8? Não. Diversas interfaces que já era utilizadas tornaram-se funcionais Para as novas, e as suas implementações, temos a anotação opcional @FunctionalInterface.
  • 5. Globalcode – Open4education Sort tradicional public static void main(String[] args) { List<Ingresso> ingressos = Arrays.asList( new Ingresso("Festa 1", 100.0), new Ingresso("Festa 2", 150.0), new Ingresso("Festa 3", 200.0)); Collections.sort(inscricoes, new Comparator<Ingresso>() { @Override public int compare(Ingresso o1, Ingresso o2) { return o1.getNome().compareTo(o2.getNome()); } }); }
  • 6. Globalcode – Open4education Lambda public static void main(String[] args) { List<Ingresso> ingressos = Arrays.asList( new Ingresso("Festa 1", 100.0), new Ingresso("Festa 2", 150.0), new Ingresso("Festa 3", 200.0)); Collections.sort(inscricoes, (o1, o2) -> { return o1.getNome().compareTo(o2.getNome()); }); }
  • 7. Globalcode – Open4education Lambda public static void main(String[] args) { List<Ingresso> ingressos = Arrays.asList( new Ingresso("Festa 1", 100.0), new Ingresso("Festa 2", 150.0), new Ingresso("Festa 3", 200.0)); Collections.sort(inscricoes, (o1, o2) -> return o1.getNome().compareTo(o2.getNome()); }
  • 8. Globalcode – Open4education Lambdas public static void main(String[] args) { List<Ingresso> ingressos = Arrays.asList( new Ingresso("Festa 1", 100.0), new Ingresso("Festa 2", 150.0), new Ingresso("Festa 3", 200.0)); ingressos.forEach(ingresso -> System.out.println(ingresso)); }
  • 9. Globalcode – Open4education Lambdas public static void main(String[] args) { List<Ingresso> ingressos = Arrays.asList( new Ingresso("Festa 1", 100.0), new Ingresso("Festa 2", 150.0), new Ingresso("Festa 3", 200.0)); ingressos.forEach(ingresso -> System.out.println(ingresso)); } A não ainda é muito código?
  • 10. Globalcode – Open4education Lambdas public static void main(String[] args) { List<Ingresso> ingressos = Arrays.asList( new Ingresso("Festa 1", 100.0), new Ingresso("Festa 2", 150.0), new Ingresso("Festa 3", 200.0)); ingressos.forEach(System.out::println); }
  • 11. Globalcode – Open4education Default methods Novos métodos, com implementação, adicionados às interfaces Java, como em Collections e Map. Veja por exemplo o forEach: default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } } Outros: removeIf, sort, compare, computeIfPresente. Você pode criar default methods em suas interfaces.
  • 12. Globalcode – Open4education Streams & Collectors Fonte: https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.htm Trabalhar com coleções sempre envolve muito código. Em muitas linguagens temos por exemplo um ‘filter’ pra facilitar nossa vida. A lib guava tem a FluentIterable com funcionalidades bastante similares Collectors implementa um conjunto de reduções úteis para trabalhar com coleções como agrupamentos, somatórios e transformações.
  • 13. Globalcode – Open4education Filtrar da forma tradicional public static void main(String[] args) { List<Ingresso> ingressos = new ArrayList<>(); ingressos.add(new Ingresso("Festa 1", 100.0)); ingressos.add(new Ingresso("Festa 2", 150.0)); ingressos.add(new Ingresso("Festa 3", 180.0)); List<Ingresso> ingressosBaratos = new ArrayList<>(); for(Ingresso ingresso : ingressos) { if(ingresso.getValor() < 120) { ingressosBaratos.add(ingresso); } } }
  • 14. Globalcode – Open4education Filtrando com Stream e Collectors public static void main(String[] args) { List<Ingresso> ingressos = new ArrayList<>(); ingressos.add(new Ingresso("Festa 1", 100.0)); ingressos.add(new Ingresso("Festa 2", 150.0)); ingressos.add(new Ingresso("Festa 3", 180.0)); List<Ingresso> ingressosBaratos = ingressos.stream() .filter( i -> i.getValor() < 120 ) .collect(Collectors.toList()); }
  • 15. Globalcode – Open4education Nova api java.time Inspirada na api joda.time Mais facilidade para fazer operações com datas Novas classes LocalDate, LocalDateTime, YearMonth, Year, Month, etc.. Suporte a fuso horário Obter a data de amanhã: LocalDate.now().plusDays(1); Calcular um período entre duas datas, como uma idade: Period periodo = Period.between(dtNascimento, hoje); Fonte: http://blog.caelum.com.br/conheca-a-nova-api-de-datas-do-java-8/
  • 16. Globalcode – Open4education PermGen space? Não existe mais o Permanent Generation (PermGen) space Metaspace: O novo espaço de memória Não precisa verificar e tunar a memória nunca mais!!! #SQN O metaspace passa a ser limitado pela quantidade de memória fisica na máquina Novo parametro MaxMetaspaceSize para limitar esse uso Basicamente: antes era pouco por default, agora é muito por default Fonte: https://dzone.com/articles/java-8-permgen-metaspace https://www.infoq.com/news/2013/03/java-8-permgen-metaspace
  • 17. Globalcode – Open4education Mão na massa Código: https://github.com/filipeportes/adopting-java8
  • 18. Globalcode – Open4education Obrigado! Gojava Slack → https://gojavajug.slack.com Facebook → https://www.facebook.com/gojava Twitter → https://twitter.com/gojava Filipe Twiiter → https://twitter.com/filipeportes Email → omeuefilipe@gmail.com GitHub → https://github.com/filipeportes

Hinweis der Redaktion

  1. A interface Consumer é uma boa candidata a ser implementada com Lambda. Já sabemos que forEach recebe um Consumer, o Java tbm sabe disso. Então que tal omitir isso
  2. A interface Consumer é uma boa candidata a ser implementada com Lambda. Já sabemos que forEach recebe um Consumer, o Java tbm sabe disso. Então que tal omitir isso
  3. A interface Consumer é uma boa candidata a ser implementada com Lambda. Já sabemos que forEach recebe um Consumer, o Java tbm sabe disso. Então que tal omitir isso
  4. A sintaxe é diferente, mas em pouco tempo você se habitua e vê o quanto é simples.
  5. A sintaxe é diferente, mas em pouco tempo você se habitua e vê o quanto é simples.
  6. A sintaxe é diferente, mas em pouco tempo você se habitua e vê o quanto é simples.
  7. Com essa crise, remover ingressos caros
  8. Com essa crise, remover ingressos caros
  9. Stream é outra coleção? Não, ele não guarda os dados.