Bem-vindo ao meu repositório de Estudos - Java! Aqui você encontrará tudo o que estou aprendendo sobre Java, desde conceitos básicos até tópicos mais avançados. Vamos mergulhar no mundo do Java e expandir nosso conhecimento juntos! 💡
Gradle é uma ferramenta que ajuda a construir e gerenciar projetos de software. Pense nisso como uma lista de tarefas automatizadas que compila seu código, baixa bibliotecas necessárias e empacota tudo para ser executado. Exemplo
Uma lista encadeada é como uma corrente, onde cada link (ou nó) aponta para o próximo. Isso torna fácil adicionar ou remover itens sem reorganizar toda a lista. Exemplo
Nesta lista, cada item sabe quem é seu próximo e seu anterior, como um trem onde cada vagão conhece o próximo e o anterior. Isso facilita mover-se para frente e para trás na lista. Exemplo
Uma lista circular é uma lista onde o último item está conectado de volta ao primeiro, formando um círculo. Isso é útil quando você precisa percorrer repetidamente uma lista sem parar. Exemplo
Uma fila é como uma fila de pessoas: o primeiro a entrar é o primeiro a sair (FIFO - First In, First Out). Em programação, uma fila é usada para gerenciar tarefas em ordem, garantindo que a primeira tarefa a chegar seja a primeira a ser realizada. Exemplo
Uma pilha é como uma pilha de pratos: o último prato colocado é o primeiro a ser retirado (LIFO - Last In, First Out). Em programação, pilhas são usadas para armazenar dados temporários durante a execução de programas. Exemplo
Collections são como recipientes que armazenam múltiplos itens juntos, como uma caixa de ferramentas. Em Java, há diferentes tipos de coleções para diferentes necessidades, como listas, conjuntos e filas. Exemplo
Uma lista (List) é uma coleção ordenada de elementos que permite duplicatas. É ideal para armazenar dados onde a ordem dos elementos é importante. Exemplo
- ArrayList: Baseado em um array redimensionável, oferece acesso rápido aos elementos.
- LinkedList: Baseado em uma lista duplamente ligada, é eficiente para inserções e remoções.
Um conjunto (Set) é uma coleção de itens únicos, ou seja, não permite duplicatas. É ideal para armazenar dados onde a ordem não importa, mas a unicidade é essencial. Exemplo
- HashSet: Como um cesto de frutas onde a ordem não importa.
- LinkedHashSet: Como um cesto de frutas onde a ordem de colocação é mantida.
- TreeSet: Como um cesto de frutas organizado por tamanho.
Um mapa (Map) é uma coleção que associa chaves a valores, não permite duplicatas de chaves, mas permite valores duplicados. É ideal para armazenar pares chave-valor. Exemplo
- HashMap: Baseado em uma tabela hash, oferece desempenho constante para operações básicas, não garante ordem.
- LinkedHashMap: Mantém a ordem de inserção.
- TreeMap: Mantém os pares chave-valor ordenados.
Alguns métodos importantes das coleções são:
- add(elemento): Adiciona um elemento à coleção.
- remove(elemento): Remove um elemento da coleção.
- contains(elemento): Verifica se a coleção contém um determinado elemento.
- size(): Retorna o número de elementos na coleção.
- clear(): Remove todos os elementos da coleção.
- isEmpty(): Verifica se a coleção está vazia.
- iterator(): Retorna um iterador para percorrer os elementos da coleção.
Imagine que você quer comparar dois itens para ver se são iguais. O método equals faz isso. Já o hashCode é como um identificador único para cada item, usado para organizá-los eficientemente em uma lista, como um índice de biblioteca. Exemplo
Uma árvore é como uma árvore de verdade, com um tronco e galhos, mas de cabeça para baixo. Ela é usada para organizar dados de uma maneira que facilita encontrar informações rapidamente. Cada "galho" (ou nó) pode ter outros galhos saindo dele, formando uma estrutura hierárquica. Exemplo
Os quatro pilares da POO ajudam a organizar e escrever código de forma eficiente: Exemplo
- Encapsulamento: Protege os dados, permitindo acesso apenas através de métodos específicos.
- Abstração: Simplifica sistemas complexos, mostrando apenas o necessário.
- Herança: Permite que novas classes reutilizem código de classes existentes.
- Polimorfismo: Permite tratar objetos diferentes de forma uniforme através de uma interface comum.
Spring Boot é um framework que facilita a criação de aplicativos Java autônomos, de nível de produção. Ele fornece um conjunto de convenções e dependências predefinidas para que você possa configurar um novo projeto rapidamente. Exemplo
Maven é uma ferramenta de automação de compilação e gerenciamento de dependências usada principalmente em projetos Java. Ele ajuda a gerenciar bibliotecas e plugins de forma eficiente, garantindo que todas as dependências necessárias sejam baixadas e incluídas no projeto. Exemplo
A Stream API permite processar coleções de dados de forma declarativa, utilizando operações de filtro, map e reduce. Isso facilita a manipulação e transformação de dados de maneira eficiente e concisa. Exemplo
