Casa do Código - Livros e Tecnologia

  • Programação
  • Lógica
  • Java
  • .NET
  • PHP
  • Games
  • OO
  • Funcional
  • Python
  • Outros
  • Todos
  • Mobile
  • iOS
  • Android
  • Multiplataforma
  • Outros
  • Todos
  • Front-end
  • HTML e CSS
  • JavaScript
  • Outros
  • Todos
  • Infraestrutura
  • Web
  • Dados
  • Outros
  • Todos
  • Business
  • Startups
  • Marketing Digital
  • Gestão
  • Agile
  • Outros
  • Todos
  • Design & UX
  • Você tem 0 itens na sacola 0 Abrir navegação por categorias e busca Ir para ao topo da página

    Use o código e tenha 10% de desconto!

    Java 8 Prático Lambdas, Streams e os novos recursos da linguagem

    Paulo Silveira, Rodrigo Turini
    Livro de Java 8

    *Você terá acesso às futuras atualizações do livro.

    Conteúdo

    Você é um programador com boa fluência em Java? Está na hora de dar mais um passo.

    Quase 20 anos após sua primeira versão, um novo Java surge com novidades importantes. Entre os principais recursos, a linguagem recebe default methods, method references e lambdas. São conceitos simples, mas que trazem importantes possibilidades. Durante o livro, exploraremos esses e outros avanços. Sempre com exemplos práticos e apresentando onde utilizá-los, migrando o código legado do dia a dia para o novo paradigma funcional do Java 8.

    Com esse tripé de conceitos, a API conseguiu evoluir de uma maneira interessante. Os pacotes java.util.stream e java.util.function serão explorados com profundidade, apresentando formas sucintas para trabalhar com coleções e outros tipos de dados. Streams e Collectors farão parte da sua rotina e serão tão essenciais nas suas aplicações quanto já são as Collections e o java.io.

    Por último, veremos como a nova API de java.time vem mudar da água pro vinho a forma de trabalhar com datas e horários.

    Ainda curioso para entender melhor as possibilidades? Se queremos ordenar todos os usuários de uma List por pontos, e filtrar apenas os que possuem mais de 100, faríamos assim no Java 7:

    É o problema vertical do Java! Muito código de boilerplate para uma transformação simples. Como fica no Java 8?

    O livro vai muito mais longe na manipulação de coleções e datas. Conheça e comece a utilizar as novidades em seu projeto.

    Saiba o que você vai aprender

     

    Sumário

    • 1 Java 8
    • 1.1 Um balde de água morna?
    • 1.2 Acesse o código desse livro e discuta com a gente!
    • 2 Olá, Lambda!
    • 2.1 Loops da maneira antiga e da maneira nova
    • 2.2 Que entre o Lambda!
    • 3 Interfaces funcionais
    • 3.1 Outro exemplo: listeners
    • 3.2 Sua própria interface funcional
    • 3.3 A anotação @FunctionalInterface
    • 3.4 Indo mais a fundo: primeiros detalhes
    • 4 Default Methods
    • 4.1 O método forEach na interface Iterable
    • 4.2 A interface Consumer não tem só um método!
    • 4.3 Mais um novo método em Collection: removeIf
    • 4.4 Herança múltipla?
    • 5 Ordenando no Java 8
    • 5.1 Comparators como lambda
    • 5.2 O método List.sort
    • 5.3 Métodos estáticos na interface Comparator
    • 5.4 Conhecendo melhor o Comparator.comparing
    • 5.5 Ordenando por pontos e o autoboxing
    • 6 Method References
    • 6.1 Tornando todos os usuários moderadores
    • 6.2 Comparando de uma forma ainda mais enxuta
    • 6.3 Compondo comparators
    • 6.4 Referenciando métodos de instância
    • 6.5 Referenciando métodos que recebem argumentos
    • 6.6 Referenciando construtores
    • 6.7 Outros tipos de referências
    • 7 Streams e Collectors
    • 7.1 Tornando moderadores os 10 usuários com mais pontos
    • 7.2 Streams: tornando moderadores os usuários com mais de 100 pontos
    • 7.3 Como obter de volta uma Lista?
    • 7.4 Collectors
    • 7.5 Avançado: por que não há um toList em Stream?
    • 7.6 Liste apenas os pontos de todos os usuários com o map
    • 7.7 IntStream e a família de Streams
    • 7.8 O Optional em java.util
    • 8 Mais operações com Streams
    • 8.1 Ordenando um Stream
    • 8.2 Muitas operações no Stream são lazy!
    • 8.3 Qual é a vantagem dos métodos serem lazy?
    • 8.4 Enxergando a execução do pipeline com peek
    • 8.5 Operações de redução
    • 8.6 Conhecendo mais métodos do Stream
    • 8.7 Streams primitivos e infinitos
    • 8.8 Praticando o que aprendemos com java.nio.file.Files
    • 8.9 FlatMap
    • 9 Mapeando, particionando, agrupando e paralelizando
    • 9.1 Coletores gerando mapas
    • 9.2 groupingBy e partitioningBy
    • 9.3 Executando o pipeline em paralelo
    • 9.4 Operações não determinísticas e ordered streams
    • 10 Chega de Calendar! Nova API de datas
    • 10.1 A java.time vem do Joda Time
    • 10.2 Trabalhando com datas de forma fluente
    • 10.3 Enums no lugar de constantes
    • 10.4 Formatando com a nova API de datas
    • 10.5 Datas inválidas
    • 10.6 Duração e Período
    • 10.7 Diferenças para o Joda Time
    • 11 Um modelo de pagamentos com Java 8
    • 11.1 Uma loja de digital goodies
    • 11.2 Ordenando nossos pagamentos
    • 11.3 Reduzindo BigDecimal em somas
    • 11.4 Produtos mais vendidos
    • 11.5 Valores gerados por produto
    • 11.6 Quais são os produtos de cada cliente?
    • 11.7 Qual é nosso cliente mais especial?
    • 11.8 Relatórios com datas
    • 11.9 Sistema de assinaturas
    • 12 Apêndice: mais Java 8 com reflection, JVM, APIs e limitações
    • 12.1 Novos detalhes na linguagem
    • 12.2 Qual é o tipo de uma expressão Lambda?
    • 12.3 Limitações da inferência no lambda
    • 12.4 Fim da Permgen
    • 12.5 Reflection: parameter names
    • 13 Continuando seus estudos
    • 13.1 Como tirar suas dúvidas
    • 13.2 Bibliotecas que já usam ou vão usar Java 8

    Autores

    Paulo Silveira

    Paulo Silveira, @paulo_caelum, é bacharel e mestre em Ciência da Computação pela USP, possui mais de 10 anos de experiência com desenvolvimento, passando pela Alemanha e pelo IBOPE. Coordena os cursos da Caelum nos cursos de verão da USP. Um dos fundadores do GUJ.com.br e é editor técnico da revista Mundo Java.

    Rodrigo Turini

    Rodrigo Turini é Bacharel em Ciência da Computação e líder técnico na Alura, a plataforma de cursos online do Grupo Caelum. Desenvolve em diferentes linguagens, mas tem um envolvimento muito forte com o Java, sendo membro ativo da JCP e de expert groups do JavaEE. Turini participa ativamente da comunidade em blogs, fóruns, listas de discussões e também em eventos nacionais e internacionais. É um dos líderes de desenvolvimento do VRaptor, e contribui para diversos outros projetos e manifestos open source. Gosta de estudar continuamente as melhores práticas da orientação a objetos, programação funcional e reativa.

    Dados do produto

    Número de páginas:
    151
    ISBN:
    978-85-66250-46-6
    Data publicação:
    03/2014
    Submeter errata Fórum de discussões

    Compartilhe!

    Compartilhe no Facebook Compartilhe no Twitter

    Impulsione sua carreira aprendendo também...

    Livro de Java 9
    Java 9
    +
    Livro de Certificação Java
    Certificação Java
    altLogoFooter

    Links da
    Casa do Código

    • Meus ebooks
    • Sobre a Casa do Código
    • Todos os livros
    • Nossas coleções
    • Quero escrever um livro ou fazer parceria
    • Perguntas Frequentes
    • Política de Privacidade
    • Fale conosco

    Nas redes sociais

    • /CasaDoCodigo
    • @casadocodigo
    • @casadocodigo

    Receba novidades e lançamentos

    Este site aceita Pix, Cartão de Crédito, Débito

    • pagarme
    • paypal

    Grupo Alura

    • Educação em Tecnologia

      • FIAP
      • Casa do Código
      • PM3 - Cursos de Produto
    • Mais Alura

      • Alura Start
      • Alura Língua
      • Alura Para Empresas
      • Alura LATAM
    • Comunidade

      • Tech Guide
      • 7 days of code
      • Hipsters ponto Jobs
    • Podcasts

      • Hipsters ponto Tech
      • Dev sem Fronteiras
      • Layers ponto Tech
      • Like a Boss
      • Scuba Dev