Java puro Flashcards
Quais são os modificadores de acesso do java?
Public, protected, private, default
Como é o fluxo depois de rodar uma aplicação Java?
Código java é compilado para bytecodes pelo compilador, o JRE cria uma máquina virtual JVM para rodar o código em bytecodes e a aplicação começa a funcionar.
O que é Java JRE? Qual sua função?
Java Runtime Environment.
Fornecer a JVM e outras bibliotecas essenciais.
O que é Java JVM? Qual sua função?
Java Virtual Machine.
Rodar código bytecodes.
O que é Java JIT?
Compilador Just-In-Time, que vem ativado por padrão, e compila o código para bytecodes durante a execução do programa.
O que é hotspot no contexto de Java?
É a técnica de otimizar a compilação dos códigos mais acessados, em conjunto com o JIT.
O código gerado pela compilação do Java contem instrução em linguagem de ___________?
Linguagem intermediária.
Não é linguagem de máquina.
Quais são as fases de uma aplicação Java?
Edição, compilação, carregamento, verificação e execução.
O que é a fase de edição de uma aplicação Java?
Codar.
O que é a fase de compilação de uma aplicação Java?
Transformar .java em .class
O que é a fase de carregamento de uma aplicação Java?
Introduzir os códigos bytecodes na memória.
O que é a fase de verificação de uma aplicação Java?
Verifica se os bytecodes são válidos e não violam regras.
O que é a fase de execução de uma aplicação Java?
A JVM lê e interpreta os bytecodes para uma linguagem de máquina.
O que é Java Stack Memory?
Área da memória utilizada para armazenar variáveis locais e a execução de métodos. O erro mais conhecido dela é StackOverflow
O que é Java Heap Space?
A heap space é usada para armazenar objetos (instâncias de classes) e as referências a esses objetos.
Como interceptar uma chamada do GC ao liberar uma classe?
Sobreescrevendo o método finalize() dentro de uma classe.
Como chamar o GC de forma manual?
Utilizando o método gc() você solicita que a JVM execute uma limpeza, mas não tem garantia de nada, nem de quando será executado.
Como comentar código no Java?
//
/**/
Quais são os tipos tipos primitivos do Java?
Inteiro: byte, int, long, short, char
Flutuante: float, double
Booleano: boolean
Qual a saída do código a seguir?
System.out.println(“1+1+1=”+1+1+’1’);
1+1+1=111
Inteiros concatenados com string viram string.
Utilizado para verificar se um objeto é uma instância de uma classe
meuAnimal instanceof Cachorro
Também verifica herança .
Quais são os operadores de bit do Java e o que fazem?
complemento = ~
and bit a bit = &
or bit a bit = |
XOR = ^
shift à esquerda = «
shift à direita =»_space;
shift à direita sem sinal =»_space;>
Que número é esse em hexadecimal?
0xffff9c
Encontrar o valor das quadras.
1111 1111 1111 1111 1001 1100
Multiplicar o valor de cada quadra por 16 elevado à posição da quadra.
OBS: começamos do elevado a 0, da direita para a esquerda.
Pra que serve o modificador de acesso package-private?
É o modificador padrão de acesso em Java quando nenhum modificador específico é declarado.
Os membros package-private são visíveis para todas as classes que pertencem ao mesmo pacote, mas não podem ser acessados de classes que estão em pacotes diferentes.
Quais são os outros tipos de modificadores não relacionados a acesso?
static: Pertence à classe, não à instância.
final: Imutável, não pode ser sobrescrito ou estendido.
abstract: Classe ou método abstrato, deve ser implementado.
synchronized: Método ou bloco seguro para múltiplas threads.
volatile: Variável visível por todas as threads, sem cache.
transient: Impede a serialização de um campo.
native: Método implementado em outra linguagem.
strictfp: Garantia de precisão consistente para ponto flutuante.
interface: Declaração de uma interface.
default: Implementação padrão em interfaces.
Pra que servem as palavras final, sealed e permits no java?
final:
Em variáveis: A variável não pode ser alterada após ser inicializada.
Em métodos: O método não pode ser sobrescrito em subclasses.
Em classes: A classe não pode ser estendida.
sealed:
Restringe quais classes podem estender a classe marcada como sealed.
Funciona em conjunto com permits para definir quais subclasses são permitidas.
permits:
Usado em classes sealed para listar as classes que podem herdar dela.
Quais são os tipos de polimorfismo?
Polimorfismo por Inclusão: Métodos sobrescritos em subclasses.
Polimorfismo por Sobrecarga: Vários métodos com o mesmo nome, mas diferentes parâmetros.
Polimorfismo Paramétrico: Uso de generics para permitir que métodos e classes operem com diferentes tipos.
Polimorfismo Ad-hoc: Métodos sobrecarregados que realizam operações semelhantes em diferentes tipos de dados.