Desenvolvedor desde 2012Java Web, AngularJS e AndroidCertificações OCJP e OCJPA
Email: [email protected]://github.com/RicardoRFariahttps://br.linkedin.com/in/ricardorfaria/pt/
Ricardo Faria
Java 8 para webFrameworks 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)
Java 8 para web [2]Clouds com suporte no PAAS- Amazon- Openshift- Bluemix- Azure (demanda configuração adicional)
Novas funções da api de map- ForEach- Remove (preciso - por chave e valor)- Replace- ComputeIfPresent, ComputeIfAbsent- GetOrDefault
Exemplos na classe: NovidadesMap.java
String JoinCom a vinda do java 8, String ganhou um novo método chamado join(), utilizado para concatenar várias strings.
Exemplo na classe: StringJoin.class
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.
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.
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.
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.
Exemplo de códigoClasses- CarrosIdadeProcessor.java- VariasManeirasDeSeEscreverLambda.java
- ImportacaoArquivo.java
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.
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.
Outras várias funções da stream- Distinct- FindAny, FindFirst- First, Last- Min, max, count- Collect- Reduce
Exemplos na classe: CalculadoraIdadeCarro.java
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.
Stream CollectorUtilizada 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
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
Nova api de tempoA 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.
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
Links da palestraCódigo no github: https://github.com/RicardoRFaria/PalestraJava8Recomendação de livro:http://www.casadocodigo.com.br/products/livro-java8
Top Related