Java 8 para o dia a dia
Exemplos práticos de como aplicar as novas apis no
seu trabalho
Desenvolvedor desde 2012
Java Web, AngularJS e Android
Certificações OCJP e OCJPA
Email: ricardo.faria@outlook.com.br
http...
Java 8 para web
Frameworks com suporte:
- Spring 4+ o que inclui Spring Boot
- JSF (dependendo do ambiente)
Containers com...
Java 8 para web [2]
Clouds com suporte no PAAS
- Amazon
- Openshift
- Bluemix
- Azure (demanda configuração adicional)
Novas funções da collection
- Sort
- ForEach
- RemoveIf
Exemplos na classe: NovidadesCollection.java
Novas funções da api de map
- ForEach
- Remove (preciso - por chave e valor)
- Replace
- ComputeIfPresent, ComputeIfAbsent...
String Join
Com a vinda do java 8, String ganhou um novo
método chamado join(), utilizado para
concatenar várias strings.
...
Lambda functions
- São funções inline, que implementam uma
interface funcional;
- Tipo, parâmetro e retorno inferidos
auto...
Interfaces funcionais
- Apenas um método abstrato
- Interfaces já existentes podem ser funcionais
(Ex: Runnable)
- A annot...
Métodos default
- O modificar default permite implementar
um método na interface;
- Não precisam ser reimplementados, mas
...
Criar outra collection para filtrar algo.
NUNCA MAIS!
- O filter permite filtrar collection com base
em um Predicate;
- Pr...
Exemplo de código
Classes
- CarrosIdadeProcessor.java
- VariasManeirasDeSeEscreverLambda.java
- ImportacaoArquivo.java
Interface x Classe abstrata
- Interfaces não podem ter métodos final,
classes abstratas podem;
- Classes podem implementar...
Stream
- As stream são a base para criação do lambda
no Java;
- Streams são divididas entre serial e parallels;
- São imut...
Outras várias funções da stream
- Distinct
- FindAny, FindFirst
- First, Last
- Min, max, count
- Collect
- Reduce
Exemplo...
Cuidados com Stream
- Processamento collections que tem outras
collections;
- Repetição de etapas da stream em mais de
uma...
Stream Collector
Utilizada para colletar resultados de streams;
A classe estática Collectors provê vários coletores
pronto...
Optional<T>
Optionals são wrappers genéricos que representam um
objeto que pode ser nulo;
Retornado por streams quando o r...
Nova api de tempo
A terceira api de tempo provida no java agora
trás solução para diversos problemas que
encontramos no di...
Vantagens da nova api de tempo
- Separação de conceitos clara;
- Você escolhe se tempo, data ou os dois serão
utilizados;
...
Links da palestra
Código no github:
https://github.com/RicardoRFaria/PalestraJava8
Recomendação de livro:
http://www.casad...
Próximos SlideShares
Carregando em…5
×

Java 8 para o dia a dia

336 visualizações

Publicada em

Exemplos práticos de como aplicar as novas apis no seu trabalho
Projeto no github desta palestra: https://github.com/RicardoRFaria/PalestraJava8

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

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

Nenhuma nota no slide

Java 8 para o dia a dia

  1. 1. Java 8 para o dia a dia Exemplos práticos de como aplicar as novas apis no seu trabalho
  2. 2. Desenvolvedor desde 2012 Java Web, AngularJS e Android Certificações OCJP e OCJPA Email: ricardo.faria@outlook.com.br https://github.com/RicardoRFaria https://br.linkedin.com/in/ricardorfaria/pt/ Ricardo Faria
  3. 3. Java 8 para web Frameworks com suporte: - Spring 4+ o que inclui Spring Boot - JSF (dependendo do ambiente) Containers com suporte: - Tomcat, Jersey e Undertow (Servlet) - Wildfly 8 (Java EE) - Glassfish 4.1 (Java EE)
  4. 4. Java 8 para web [2] Clouds com suporte no PAAS - Amazon - Openshift - Bluemix - Azure (demanda configuração adicional)
  5. 5. Novas funções da collection - Sort - ForEach - RemoveIf Exemplos na classe: NovidadesCollection.java
  6. 6. Novas funções da api de map - ForEach - Remove (preciso - por chave e valor) - Replace - ComputeIfPresent, ComputeIfAbsent - GetOrDefault Exemplos na classe: NovidadesMap.java
  7. 7. String Join Com a vinda do java 8, String ganhou um novo método chamado join(), utilizado para concatenar várias strings. Exemplo na classe: StringJoin.class
  8. 8. Lambda functions - São funções inline, que implementam uma interface funcional; - Tipo, parâmetro e retorno inferidos automaticamente pela JVM; - Lambdas não podem manter estado e nem modificar variáveis do escopo anterior.
  9. 9. Interfaces funcionais - Apenas um método abstrato - Interfaces já existentes podem ser funcionais (Ex: Runnable) - A annotation @FunctionalInterface demarca uma interface funcional, mas não é obrigatória.
  10. 10. Métodos default - O modificar default permite implementar um método na interface; - Não precisam ser reimplementados, mas podem; - Não pode ser final.
  11. 11. Criar outra collection para filtrar algo. NUNCA MAIS! - O filter permite filtrar collection com base em um Predicate; - Predicate que é uma interface funcional do java 8, portanto podemos utilizar Lambda.
  12. 12. Exemplo de código Classes - CarrosIdadeProcessor.java - VariasManeirasDeSeEscreverLambda.java - ImportacaoArquivo.java
  13. 13. Interface x Classe abstrata - Interfaces não podem ter métodos final, classes abstratas podem; - Classes podem implementar várias interfaces, mas somente extender uma classe abstrata.
  14. 14. Stream - As stream são a base para criação do lambda no Java; - Streams são divididas entre serial e parallels; - São imutáveis, ou seja, não modificam a collection; - Não devem ser reaproveitadas.
  15. 15. Outras várias funções da stream - Distinct - FindAny, FindFirst - First, Last - Min, max, count - Collect - Reduce Exemplos na classe: CalculadoraIdadeCarro.java
  16. 16. Cuidados com Stream - Processamento collections que tem outras collections; - Repetição de etapas da stream em mais de uma linha do seu código; - Parallels apenas para os casos necessários; - Streams que ultrapassam 2 linhas de código.
  17. 17. Stream Collector Utilizada para colletar resultados de streams; A classe estática Collectors provê vários coletores prontos como: - Agrupadores - Média, Soma, Mínimo, Máximo - Conversões em collections Exemplos em: CollectorsNaPratica.java
  18. 18. Optional<T> Optionals são wrappers genéricos que representam um objeto que pode ser nulo; Retornado por streams quando o resultado pode ser nulo; Caso o objeto seja nulo, é possível efetuar ações como: - Retornar um objeto como no pattern “NullObject”; - Lançar uma exception Exemplo na classe: OptionalNaPratica.java
  19. 19. Nova api de tempo A terceira api de tempo provida no java agora trás solução para diversos problemas que encontramos no dia a dia, como: - Duração; - Intervalo entre períodos; - Manipulação dos tempos; - Representação em outros formatos.
  20. 20. Vantagens da nova api de tempo - Separação de conceitos clara; - Você escolhe se tempo, data ou os dois serão utilizados; - A api utiliza internamente valores sem formato, permitindo fácil formatação; - Imutável portanto thread safe. Exemplo na classe: TimeNaPratica.java
  21. 21. Links da palestra Código no github: https://github.com/RicardoRFaria/PalestraJava8 Recomendação de livro: http://www.casadocodigo.com.br/products/livro-java8

×