Mapa mental
Conceitos Avançados Java
Contenido del mapa
Conceitos Avançados Java
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.
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.
- Computadores utilizam arquivos para armazenamento em longo prazo de grandes volumes de dados persistentes, mesmo depois de os programas que criaram os dados terminarem.
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.
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.
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.
- Um método recursivo chama a ele mesmo direta ou indiretamente por meio de outro método.
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
- 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.
- Os métodos genéricos permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados.
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.
- 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.
- O Java disponibiliza a concorrência por meio da linguagem e APIs.
- Computadores multiprocessados de hoje em dia têm múltiplos processadores que podem realizar tarefas em paralelo.
- Nesse sentido, o paralelismo é um subconjunto da concorrência.
Información
- Descripción
- Mapa Mental sobre Conceitos Avançados Java, creado por party Loug el 07/03/2025.
- Creado por
- party Loug
- Visitas
- 0
- Valoración