O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Conceitos Avançados Java

party Loug Português

Conteúdo do mapa

Conceitos Avançados Java

  1. Strings, caracteres e expressões regulares

    • Strings em Java são objetos de classe Stringe são imutáveis .
    • Cada caractere tem um valor Unicode.
    • Literais de string são declarados entre aspas duplas ( "exemplo").
    • Classe StringBuilder(Strings Mutáveis)
    • Tokenização de Strings
      • O método split da classe String tokeniza uma String com base no delimitador especificado como um argumento e retorna um array de Strings contendo os tokens
    • Expressões regulares,
      • Expressões regulares são sequências de caracteres e símbolos que definem um conjunto de strings.
      • Elas são úteis para validar entrada e assegurar que os dados estão em um formato particular.
  2. Arquivos, fluxos e serialização de objetos

    • Computadores utilizam arquivos para armazenamento em longo prazo de grandes volumes de dados persistentes, mesmo depois de os programas que criaram os dados terminarem.
      • Arquivos criados usando fluxos baseados em bytes são arquivos binários. Arquivos criados usando fluxos baseados em caracteres são arquivos de texto.
    • Os computadores guardam arquivos em dispositivos de armazenamento secundários, como discos rígidos.
    • Fluxos baseados em bytes representam dados no formato binário.
    • Fluxos baseados em caracteres representam dados como sequências de caracteres.
    • Arquivos de texto de acesso sequencial
      • Os dados em muitos arquivos sequenciais não podem ser modificados sem o risco de destruir outros no arquivo.
      • Registros em um arquivo de acesso sequencial geralmente são atualizados regravando todo o arquivo.
  3. Coleções genéricas

    • A estrutura das coleções do Java fornece métodos e estruturas de dados predefinidos para manipulá-las.
    • Uma coleção é um objeto que pode armazenar referências a outros objetos.
      • As classes e interfaces da estrutura de coleções estão no pacote java.util.
  4. Lambdas e fluxos Java SE 8

    • Antes do Java SE 8, o Java suportava três paradigmas de programação — programação procedural, programação orientada a objetos e programação genérica. O Java SE 8 acrescenta a programação funcional.
    • As novas capacidades da linguagem e da biblioteca que suportam a programação funcional foram adicionadas ao Java como parte do Projeto Lambda
    • Interfaces funcionais também são conhecidas como interfaces de método abstrato único (SAM).
    • Uma expressão lambda representa um método anônimo — uma notação abreviada para implementar uma interface funcional
      • O tipo de uma lambda é o tipo da interface funcional que a lambda implementa.
      • Expressões lambda podem ser usadas em qualquer lugar em que interfaces funcionais são esperadas.
        • Uma lambda consiste em uma lista de parâmetros seguida pelo símbolo seta (->) e um corpo, como em: (listaDeParâmetros) -> {instruções}
    • Fluxos são objetos que implementam a interface Stream (do pacote java.util.stream) e permitem realizar tarefas de programação funcional.
  5. Recursão

    • Um método recursivo chama a ele mesmo direta ou indiretamente por meio de outro método.
      • Quando um método recursivo é chamado para resolver um problema, ele só pode solucionar o(s) caso(s) mais simples(s), ou caso(s) de base. Se chamado com um caso básico, o método retorna um resultado.
      • Se um método recursivo é chamado com um problema mais complexo do que o de um caso básico, ele geralmente o divide em duas partes conceituais: uma que o método sabe resolver e uma que ele não sabe.
    • Um fractal é uma figura geométrica gerada de um padrão repetido recursiva e infinitamente.
      • Fractais têm uma propriedade autossimilar: subpartes são cópias de tamanho reduzido do todo.
  6. Classes e métodos genéricos

    • Os métodos genéricos permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados.
      • Se as operações realizadas por vários métodos sobrecarregados forem idênticas para cada tipo de argumento, elas podem ser codificadas mais compacta e convenientemente com um método genérico.
      • Uma declaração de método genérica única pode ser chamada com argumentos de diferentes tipos de dados.
        • Um método genérico pode ser sobrecarregado com outros métodos genéricos ou não.
    • Classes e interfaces genéricas permitem especificar conjuntos de tipos relacionados.
    • Uma seção de parâmetro de tipo contém um ou mais parâmetros de tipo separados por vírgulas.
      • Um parâmetro de tipo é um identificador que especifica um nome de tipo genérico.
    • Quando um método genérico é compilado, o compilador executa o erasure para remover a seção de parâmetros de tipo e substituir os parâmetros de tipo por tipos reais.
      • Por padrão, cada parâmetro de tipo é substituído pelo seu limite superior, que é Object, a menos que indicado o contrário.
    • As classes genéricas fornecem um meio de descrever uma classe de uma maneira independente de tipo. Podemos então instanciar objetos específicos de tipo da classe genérica
      • A seção de parâmetro de tipo de uma classe genérica pode ter um ou mais parâmetros de tipo separados por vírgulas.
        • • É possível instanciar uma classe genérica sem especificar um argumento de tipo. Nesse caso, diz-se que o novo objeto da classe tem um tipo bruto — o compilador utiliza implicitamente o tipo Object (ou o limite superior do parâmetro de tipo) por toda a classe genérica para cada argumento de tipo
  7. Concorrência

    • Duas tarefas que operam concorrentemente progridem de uma vez.
    • Duas tarefas que operam em paralelo são executadas simultaneamente.
      • Nesse sentido, o paralelismo é um subconjunto da concorrência.
        • Computadores multiprocessados de hoje em dia têm múltiplos processadores que podem realizar tarefas em paralelo.
          • O Java disponibiliza a concorrência por meio da linguagem e APIs.
            • Em um relacionamento produtor/consumidor de múltiplas threads, uma thread produtora gera dados e os coloca em um objeto compartilhado chamado buffer. Uma thread consumidora lê dados do buffer.
              • Se o buffer não estiver cheio, o produtor pode produzir; se o buffer não estiver vazio, o consumidor pode consumir. Se o buffer estiver cheio quando o produtor tenta gravar nele, o produtor deve esperar até que haja espaço. Se o buffer estiver vazio ou o valor anterior já foi lido, o consumidor deve esperar que novos dados se tornem disponíveis.
            • • Uma nova thread inicia seu ciclo de vida no estado novo. Quando o programa inicia a thread, ele é colocado no estado executável. Considera-se que uma thread no estado executável está executando sua tarefa.

Informações

Descrição
Mapa Mental sobre Conceitos Avançados Java, criado por party Loug em 07-03-2025.
Criado por
party Loug
Visualizações
0
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?