Java Flashcards
Conteúdos da linguagem e frameworks
O que é anotações no Java
“Uso do @ no Java”
As anotações tem como função, passar uma informação para o compilador do java, e também para o leitor do código, pois vai indicar para ambos a funcionalidade que está envolvendo determinado objeto.
É uma configuração no código JAVA
Por que surgiu a anotação no Java
Surgiu como uma alternativa ao uso do XML, onde no próprio código, é possível realizar as configurações no código, sem precisar de um arquivo separado para fazer uma configuração de chave Valor. Exemplo:
Essa classe é a controller; Essa classe é a model; Essa classe faz conexões com o DB;
Qual a diferença do XML para o uso de anotações?
O uso do XML requer um arquivo extra para a configuração, enquanto as anotações nos permite fazer isso no mesmo arquivo. No XML, estamos mais sucintos a erros, pois o compilador nos auxilía quando uma anotação está errada, já no XML, por padrão, não temos essa ajuda.
Outra vantagem é que o uso de algumas anotações são implícitas e/ou não obrigatórias, diferentemente do XML.
Quem faz as leituras das anotações e faz esses usos?
O hibernate é a biblioteca que faz a leitura dessas anotações. Com isso o hibernate vai saber o que fazer com essas anotações e vai realizar as anotações.
Frameworks como o Spring, tem suas anotações na qual vai ser usado para realizar configurações de controle, mapeamento, de requests https, etc…
Existe tipos diferentes de anotações?
As anotações podem ser tanto para o Javadoc, tanto para bibliotecas e também para o compilador. Algumas anotações vai para a maquina virtual. Já temos algumas anotações que são para o compilador do Java. Exemplo:
@Override -> Essa anotação vai dizer para o compilador que aquele método está sendo sobrescrito
É possível escrever as nossas proprias anotações?
Sim, mas na maior parte dos casos não é necessário. Vai depender da necessidade do projeto. Exemplo: Quando você estiver escrevendo uma bibilioteca que precisar fazer o uso dessas informações.
Mas na maior parte dos casos, não é necessário.
Sintaxe para criar uma anotação
public @interface minhaAnotação {
}
Dessa forma, podemos criar nossa propria anotação.
O que é uma API?
Api é Aplication programming interface, que nada mais é uma forma genérica de conectar componentes do nosso software. Então temos a API para que possamos conectar partes diferentes do nosso sistemas, até sistemas diferentes, o mesmo sistema, etc.
API Não é usada somente no desenvolvimento WEB
as API são usadas em diversos outras áreas da técnologia além do desenvolvimento web. Exemplo: no desenvolvimento mobile, temos uma API que nos disponibiliza o acesso a câmera. Com isso não iremos precisar fazer todo o código de acesso a câmero do zero, pois o sistema operacional já disponibiliza essa API. isso resulta também em melhor segurança, melhor uso do tempo por nao ter que criar algo do zero.
O que é o lombok?
Lomlok é uma biblioteca no java que tem como finalidade reduzir os códigos boilerplate, e implementar Metodos como gets e sets automaticamente para o compilador (maven). Através de anotações no código, podemos passar essa informação e aumentar a produtividade.
O que é o record no java?
Basicamente é uma classe java, onde não vai ter um construtor vazio, apenas tem o construtor com todos os atributos e também não temos metodo getter e setters. Por conta disso, a unica forma de settar os valores é através do construtor, pois uma vez que você instanciou a record, não é possível alterar seus atributos
A record é uma classe imutável do java
As records não possuem getters e setter, apenas é possível passar as informações no construtor e com isso, após instanciada, não é possível alterar o valor de seus atributos.
Como podemos acessar os valores das records?
Por conta de não termos a disponibilidade dos getters, conseguimos apenas pegar os valores da seguinte maneira: minhaRecord.meu_atributo()
Sintaxe para criar uma record
public record minhaRecord() {
//code
}
A classe record pode extender outras classes?
As records não podem extender outras classes pois ela implicitamente extendem a classe de um tipo específico no java: A classe Record, por conta disso não é possível extender outras classes na nossa Record, mas podemos implementar
Anotação @Entity do jarkata
Essa anotação serve para indicar para o JPA que é uma tabela no banco de dados
Anotação @Column no jakarta
Essa anotação utilizada para um atributo da classe, é utilizada para indicar que aquele atributo da nossa classe Entity, vai se tornar uma coluna no nosso banco de dados
exemplo de uso:
@Column(length = 256, nullable = false)
private String sexo;
Qual é a biblioteca que utilizamos para trabalhar com arquivos?
A lib usada no java para isso é a java.nio.file;
Esse pacote vai prover para o desenvolvedor diversas Interfaces/metodos estáticos para que possamos trabalhar com arquivos diretórios e caminhos
Qual é o tipo do objeto que temos que declarar para representar um caminho?
Path arquivo = Paths.get(“/home/keven/diretorio/arquivo.txt”);
O nosso arquivo ou diretório vai ser do tipo Path
Qual é o método que usamos para que possamos pegar o arquivo ou o diretório a partir de uma string?
A interface Paths possui o método get, que vai receber como parametro uma String que vai ser o nosso caminho passado para pegarmos o arquivo ou diretório
Qual é a interface que utilizamos para manipular o nosso objeto do tipo path?
Uma das classes utilizadas para manipular o nosso arquivo path, é a A Files, que possui método de verificar se o diretório existe, se o arquivo existe, etc.
Files.isDirectory(arquivoPath);
FIles.exists(arquivoPath);
Como que podemos fazer a alteração de conteúdo de um arquivo com o java?
Podemos utilizar a manipulação de bytes com o java, e com isso mudar o conteúdo de um arquivo.
Podemos alterar uma foto para a outra, com os bytes da foto antiga, e escrevendo no arquivo novo/ja existente
SIntaxe para pegar os bytes de um arquivo?
Com a classe Files.ReadAllBytes(meuArquivo);
podemos ler os bytes do nosso arquivo Path
FIles.write(meuArquivoTargetPath, meuArraydeBytes);
Método para deletar arquivos path
A classe Files fornecede dois métodos para que possamos estar removendo esses paths
FIles.delete(arquivoPath);
FIles.deleteIfExists(arquivoPath);