Please enable JavaScript.
Coggle requires JavaScript to display documents.
Java Interview Guide : 200+ Interview Questions and Answers - https://www…
A. Java Plataforma
- Por que Java é tão popular?
R: Independência de plataforma (Java code .java -> Jar files .jar -> JVM bytecode -> Any OS) e linguagem orientada a objetos.
- Compare JDK, JRE e JVM
R: JDK - Java Development Kit (javac, jar, debugging, tools, javap) -> JRE - Java Runtime Enviroment (java, javaw, libraries, rt.jar) -> JVM - Java Virttual Machine (JIT - Just In Time Compiler)
- Qual é o papel de um ClassLoader em Java?
R: Classes que são escritas pelo desenvolvedor, pelo framework usado e as da linguagem.
- System Class Loader (.jar .war .ear) - Carrega todas as classes de CLASSPATH.
- Extension Class Loader (directories jre, ext, lib, etc) - Carrega todas as classes do diretório de extensão.
- Bootstrap Class Loader (java files) - Carrega todos os arquivos do núcleo Java.
B. Wrapper Classes
- O que são as classes de wrapper?
R: Uma das oito classes fornecidas no pacote java.lang para fornecer métodos de objeto para os oito tipos primitivos.
- Wrapper: Boolean, Byte, Character, Double, Float, Integer, Long e Short. Possibilitam null como valor e usadas em coleções.
- Primitive: boolean, byte, char, double, float, int, long e short
- O que é Auto Boxing?
R: Conversão automática que o compilador Java faz entre os tipos primitivos e as respectivas classes de wrapper de objetos correspondentes.
- O que é Casting?
R: Converter em tipo de dados para outro.
- Implicit Casting -> Feito pelo compilador.
- Explicit Casting -> Feito através do código.
C. Strings
- Todas as String são imutáveis?
R: Sim. Se a String não é declarada com new, verifica-se ela existe no "String constant pool". Até mesmo usando o concatenador + uma nova string é criada.
- Qual a diferença entre String, StringBuffer e StringBuilder?
R: StringBuffer salva os valores na memória. String e StringBuffer são tread-safe. StringBuilder não é thread-safe. Então, ele funciona melhor em situações onde a segurança do segmento não é necessária.
-
-
-
G. Condições e Loops
- Em que uma condição switch pode ser usada?
R: Switch pode ser usado somente com String, char, byte, short, int ou enum .
- O que é Enhanced For Loop?
R: Usado para loop ao redor de arrays ou Lists.
H. Exception Handling
- Por que o Exception Handling é importante?
R: Uma mensagem amigável para o usuário e Informações suficientes para o Team Support / Support Developer para depurar o problema.
- Qual é a necessidade de finally block?
R: É executado independente depois do bloco try ou catch for executado. Não é executado se exception for lançada no finally ou JVM crash. Try não é permitido sem catch.
- Qual a diferença entre error e exception?
R: Exception pode ser manipulada pelo programador.
- O que acontece quando você throw uma Checked Exception de um método?
R: Você consegue manipular a saída de um método com uma exception.
- Como criar uma Custom Exception?
R: Podendo extends a Exception class.
- Diferença entre Checked e Unchecked Exceptions?
R: Exceções Checked são aquelas no qual você é obrigado a tratá-la.
- Como explicar try com resources?
R: Substitui o finally no try e catch.
- Explique Exception manipulando com Best Practices?
R: Não esconder exceptions, não usar em controle de fluxo e criar exceptions globais.
I. Tópicos Diversos
- O que são os valores default em um array?
R: Novos arrays são sempre iniciados com valores default.
- Como mostrar o conteúdo de um array?
R: Acessando seu index.
- Como comparar dois arrays?
R: Usando o método equals().
- O que é um enum?
R: Enum permite especificar uma lista de valores para um Tipo. Onde pode ser acessado por um switch.
- Quais são os Variable Arguments ou varargs?
R: Permitem chamar um método com diferentes números de parâmetros.
- Para que serve Asserts?
R: permitirá que você teste suposições durante o desenvolvimento sem o desgaste de escrever manipuladores para exceções que se supõem que nunca ocorrerão.
- O que é Garbage Collection?
R: Garbage Collection é um nome dado ao gerenciamento automático de memória em Java. A JVM remove objetos que já não tem referências. Ocorre quando a memória está baixa ou cpu está livre.
- O que é Initialization Blocks?
R: Executado quando um objeto é criado ou uma classe está carregada.
- Inicializador estático: Código que é executado quando uma classe é carregada.
- Inicialização de instância: código que é executado quando um novo objeto é criado.
- O que é Serialization?
R: Salvar, gravar, capturar o estado de um objeto. Permite que você crie o objeto ou uma variável de instância de uma classe e grave em um arquivo para, futuramente, utilizar esse objeto/variável com seu estado que foi gravado.
J. Collections
- Por que precisamos de Colletions?
R: As coleções são usadas em situações em que os dados são dinâmicos. É uma interface e uma classe static com métodos uteis.
- Quais são as interfaces importantes na hierarquia de Colletions?
R:
- interface Colletion<E> extends Iterable<E> { }
- interface Set<E> extends Collection<E> { } -> Aceita valores únicos, não permitem duplicação.
- interface List<E> extends Collection<E> { } -> Elements can be added in specifying position
- interface Queue<E> extends Collection<E> { } -> Organizado em ordem de processamento
- interface Map<K, V> { } -> Pares de chave e valor
- Métodos importantes na collection interface?
R: Add(), remove(), delete() e size().
- Quais são os tipos de List interface?
R:
- ArrayList -> Um array que é dimensionado dinamicamente.
- Vector -> Iqual o arrayList mas é sincronizado e aumenta o dobro do valor.
- LinkedList -> Iqual o arrayList mas a principal diferença está na performance.
- Qual a diferenças entre TreeSet, HashSet e LinkedHashSet em Java
R:
- HashSet -> É o mais rápido rápido mas não garante a ordenação dos seus elementos. Sem duplicação e sem orderm.
- TreeSet -> Possui elementos ordenados automaticamente e a complexidade para os métodos add, remove é maior. Sem duplicação organizado na ordem natural.
- LinkedHashSet -> Um meio termo entre HashSet e TreeSet, a diferença está na velocidade de ordenação. Sem duplicação mas com ordem.
- Qual a diferença entre HashMap, LinkedHashMap e TreeMap?
R:
- HashMap -> Não oferece absolutamente nenhuma garantia sobre a ordem de iteração.
- TreeMap -> Pode inserir ordem, lenta inserção, deletação e rápida interação.
- LinkedHashMap -> Iqual o treemap.
- Qual a diferença entre Deque e BlockingQueue?
R:
- Deque -> Queue com processamento no final.
- BlockingQueue -> Queue com a função de espera.
- Colletions podem manipular tipos primitivos?
R: Não, apenas objetos.
K. Collections atuais
- Qual a diferença entre sincronizada e collection atual?
R: Sincronizados métodos e blocos. Apenas uma thread pode ser usada.
L. Generics
- O que são Generics?
R: Usadas para criar Generics classes e métodos. Tornando o código mais fléxivél. Por que não precisa expecificar o tipo da colletion. Podendo haver restrição dependendo do tipo de herança.
M. Multithreading
- Para que precisa de Threading?
R: Rodar código em paralelo.
N. Extras
- Qual a diferença entre Composition, Aggregation e Association?
R:
- Association -> Qual classes tem atributos que se relacionam.
- Aggregation -> Associação caracterizada por um relacionamento do tipo parte-todo.
- Composition -> Como o aggregation mas o todo é responsável pelo ciclo de vida da parte.