Perguntas e respostas compiladas por Victoria Demidova
Bot de telegrama por cmmttd
Perguntas da entrevista do desenvolvedor Java
- POO
- JVM
- Núcleo Java
- Estrutura de coleções Java
- Java 8
- Fluxos de E/S em Java
- Serialização
- Multithreading
- Programação Reativa
- Servlets, JSP, JSTL
- Bancos de dados
- SQL
- JDBC
- Teste
- Registro
- UML
- XML
- Padrões de projeto
- Noções básicas de HTML
- Noções básicas de CSS
- Noções básicas da Web
- Apache Kafka
- Materiais adicionais
POO
- O que é POO ?
- Quais são os princípios básicos da OOP ?
- O que é “encapsulamento” ?
- O que é “herança” ?
- O que é “polimorfismo” ?
- O que é “abstração” ?
- O que é "mensagem" ?
- Conte-nos sobre os conceitos básicos de OOP: “class” , “object” , “interface” .
- Quais são as vantagens e desvantagens da abordagem de programação orientada a objetos?
- O que as expressões “é” e “tem” significam em termos de princípios de OOP?
- Qual é a diferença entre composição e agregação ?
- O que é vinculação estática e dinâmica?
para o conteúdo
JVM
- Qual é a responsabilidade da JVM?
- Carregador de classe
- Áreas de dados em tempo de execução
- Molduras
- Mecanismo de Execução
- Links úteis
para o conteúdo
Núcleo Java
- Qual é a diferença entre JRE, JVM e JDK?
- Quais modificadores de acesso existem?
- O que significa a palavra-chave
final
? - Para quais valores as variáveis padrão são inicializadas?
- O que você sabe sobre a função
main()
? - Quais operações e operadores lógicos você conhece?
- Qual é o operador de seleção ternário?
- Que operações bit a bit você conhece?
- Onde e para que é usado o modificador
abstract
? - Defina o conceito de “interface” . Quais modificadores padrão os campos e métodos de interface possuem?
- Como uma classe abstrata é diferente de uma interface? Quando você deve usar uma classe abstrata e quando deve usar uma interface?
- Por que algumas interfaces não definem métodos?
- Por que você não pode declarar um método de interface com o modificador
final
? - O que possui um nível mais alto de abstração - uma classe, uma classe abstrata ou uma interface?
- Um objeto pode acessar uma variável de classe
private
? Se sim, então como? - Qual é a ordem em que os construtores e os blocos de inicialização são chamados, levando em consideração a hierarquia de classes?
- Por que são necessários blocos de inicialização e o que são?
- A quais construções Java o modificador
static
se aplica? - Por que os blocos de inicialização estáticos são usados em Java?
- O que acontece se ocorrer uma exceção no bloco de inicialização?
- Que exceção é lançada quando ocorre um erro em um bloco de inicialização de classe?
- Um método estático pode ser substituído ou sobrecarregado?
- Os métodos não estáticos podem sobrecarregar os estáticos?
- É possível restringir o nível de acesso/tipo de retorno ao substituir um método?
- É possível alterar ao substituir um método: modificador de acesso; tipo de retorno; tipo de argumento ou número de argumentos; nomes dos argumentos ou sua ordem, remover, adicionar, alterar a ordem dos elementos na seção
throws
? - Como acessar métodos substituídos de uma classe pai?
- É possível declarar um método abstrato e estático ao mesmo tempo?
- Qual é a diferença entre um membro de instância de classe e um membro de classe estático?
- Onde é permitida a inicialização de campos estáticos/não estáticos?
- Que tipos de classes existem em java?
- Conte-nos sobre classes aninhadas. Em que casos eles são usados?
- O que é uma "classe estática" ?
- Quais são os recursos do uso de classes aninhadas: estáticas e internas? Qual é a diferença entre eles?
- O que é uma “classe local” ? Quais são suas características?
- O que são “classes anônimas” ? Onde eles são usados?
- Como posso acessar um campo em uma classe externa de uma classe aninhada?
- Para que é usada a instrução
assert
? - Para que serve um coletor de lixo?
- Como funciona o coletor de lixo?
- Que tipos de coletores de lixo são implementados na máquina virtual HotSpot?
- Descrever o algoritmo de funcionamento de um coletor de lixo implementado na máquina virtual HotSpot.
- O que é
finalize()
? Por que é necessário? - O que acontece com o coletor de lixo se o método
finalize()
demorar muito para ser concluído ou se uma exceção for lançada durante a execução? - Qual é a diferença entre
final
, finally
e finalize()
? - O que é memória Heap e Stack em Java? Qual é a diferença entre eles?
- É verdade que os tipos de dados primitivos são sempre armazenados na pilha e as instâncias dos tipos de dados de referência são sempre armazenadas no heap?
- Como as variáveis são passadas para os métodos, por valor ou por referência?
- Conte-nos sobre a conversão de tipos. O que é rebaixamento e promoção de tipo?
- Quando uma
ClassCastException
pode ser lançada em um aplicativo? - O que são literais?
- O que é autoboxing em Java e quais são as regras para empacotar tipos primitivos em classes wrapper?
- Quais são os recursos da classe
String
? - O que é um “pool de strings”?
- Por que
String
uma classe imutável e finalizada? - Por que
char[]
é preferível a String
para armazenar senhas? - Por que String é uma chave popular no
HashMap
em Java? - O que o método
intern()
faz na classe String
? - É possível usar strings em uma construção
switch
? - Qual é a principal diferença entre
String
, StringBuffer
, StringBuilder
? - O que é a classe
Object
? Que métodos ele possui? - Conte-nos sobre a clonagem de objetos.
- Qual é a diferença entre clonagem superficial e profunda ?
- Qual método de clonagem é preferível?
- Por que o método
clone()
é declarado na classe Object
e não na interface Cloneable
? - Defina o conceito de “construtor”.
- O que é um "construtor padrão" ?
- Qual é a diferença entre construtores padrão, de cópia e de parâmetro?
- Onde e como você pode usar um construtor privado?
- Conte-nos sobre classes de carregador e carregamento dinâmico de classes.
- O que é Reflexão ?
- Por que
equals()
é necessário? Como é diferente da operação ==
? -
equals()
gera uma relação de equivalência. Que propriedades tem tal atitude? - Se você deseja substituir
equals()
, quais condições devem ser satisfeitas para o método substituído? - Regras para substituir o método
Object.equals()
. - Qual é a relação entre
hashCode()
e equals()
? - Se
equals()
for substituído, existem outros métodos que devem ser substituídos? - O que acontece se você substituir
equals()
sem substituir hashCode()
? Que problemas podem surgir? - Como
hashCode()
e equals()
são implementados na classe Object
? - Para que serve
hashCode()
? - Regras para substituir o método
Object.hashCode()
. - Há alguma recomendação sobre quais campos devem ser usados ao calcular
hashCode()
? - Objetos diferentes podem ter o mesmo
hashCode()
? - Se a classe
Point{int x, y;}
implementa equals(Object that) {(return this.x == that.x && this.y == that.y)}
, mas cria o código hash na forma int hashCode() {return x;}
, então tais pontos serão colocados corretamente e recuperados do HashSet
? - Objetos diferentes
(ref0 != ref1)
podem ter ref0.equals(ref1) == true
? - Referências diferentes ao mesmo objeto
(ref0 == ref1)
podem ter ref0.equals(ref1) == false
? - É possível implementar
equals(Object that) {return this.hashCode() == that.hashCode()}
assim? -
equals()
requer a verificação de que o argumento equals(Object that)
é do mesmo tipo que o próprio objeto. Qual é a diferença entre this.getClass() == that.getClass()
e that instanceof MyClass
? - É possível implementar o método
equals()
da classe MyClass
assim: class MyClass {public boolean equals(MyClass that) {return this == that;}}
? - Existe uma classe
Point{int x, y;}
. Por que o código hash 31 * x + y
é preferível a x + y
? - Descreva a hierarquia de exceções.
- Que tipos de exceções em Java você conhece, como elas diferem?
- O que é exceção marcada e não verificada?
- Qual operador permite forçar o lançamento de uma exceção?
- O que significa a palavra-chave
throws
? - Como escrever sua própria exceção (“personalizada”)?
- Que tipos de exceção não verificada existem?
- O que é
Error
? - O que você sabe sobre
OutOfMemoryError
? - Descreva a operação do bloco try-catch-finalmente .
- Qual é o mecanismo de tentativa com recursos ?
- É possível usar um bloco try-finalmente (sem
catch
)? - Um bloco
catch
pode capturar várias exceções de uma vez? - O bloco
finally
é sempre executado? - Existem situações em que um bloco
finally
não será executado? - O método principal pode lançar uma exceção externamente e, em caso afirmativo, onde essa exceção será tratada?
- Suponha que exista um método que possa lançar
IOException
e FileNotFoundException
Em que ordem os blocos catch
devem ir? Quantos blocos catch
serão executados? - O que são genéricos ?
- O que é “internacionalização” , “localização” ?
para o conteúdo
Coleções Java
- O que é uma “coleção” ?
- Cite as principais interfaces JCF e suas implementações.
- Organize as seguintes interfaces em uma hierarquia:
List
, Set
, Map
, SortedSet
, SortedMap
, Collection
, Iterable
, Iterator
, NavigableSet
, NavigableMap
. - Por que
Map
não é Collection
enquanto List
e Set
são Collection
? - Qual é a diferença entre
java.util.Collection
e java.util.Collections
? - O que é “comportamento rápido e falho”?
- Qual é a diferença entre fail-fast e fail-safe?
- Dê exemplos de iteradores que implementam comportamento à prova de falhas
- Qual é a diferença entre
Enumeration
e Iterator
. - Como
Iterable
e Iterator
estão relacionados? - Como
Iterable
, Iterator
e “for-each” estão relacionados entre si? - Compare
Iterator
e ListIterator
. - O que acontece quando você chama
Iterator.next()
sem primeiro chamar Iterator.hasNext()
? - Quantos elementos serão ignorados se
Iterator.next()
for chamado após 10 chamadas Iterator.hasNext()
? - Como a coleção se comportará se
iterator.remove()
for chamado? - Como um iterador de
collection
já instanciado se comportará se collection.remove()
for chamado? - Como evitar
ConcurrentModificationException
ao iterar em uma coleção? - Qual coleção implementa a disciplina de serviço FIFO?
- Qual coleção implementa a disciplina de serviço FILO?
- Qual é a diferença entre
ArrayList
e Vector
? - Por que eles adicionaram
ArrayList
se já existia Vector
? - Qual é a diferença entre
ArrayList
e LinkedList
? Em que casos é melhor usar o primeiro e em que casos o segundo? - O que é
ArrayList
ou LinkedList
mais rápido? - Qual é o pior tempo de execução para o método
contains()
em um elemento que está em LinkedList
? - Qual é o pior tempo de execução para o método
contains()
em um elemento que está em ArrayList
? - Qual é o pior tempo de execução para o método
add()
no LinkedList
? - Qual é o pior tempo de execução para o método
add()
em ArrayList
? - Precisa adicionar 1 milhão de elementos, qual estrutura você está usando?
- Como você remove elementos de
ArrayList
? Como o tamanho do ArrayList
muda neste caso? - Proponha um algoritmo eficiente para remover vários elementos adjacentes do meio de uma lista implementada por
ArrayList
. - Quanta memória adicional é necessária ao chamar
ArrayList.add()
? - Quanta memória adicional é alocada ao chamar
LinkedList.add()
? - Estimar a quantidade de memória para armazenar um
byte
primitivo no LinkedList
? - Estimar a quantidade de memória para armazenar um
byte
primitivo em ArrayList
? - Para
ArrayList
ou LinkedList
a operação de adicionar um elemento ao meio ( list.add(list.size()/2, newElement)
) é mais lenta? - A implementação da classe
ArrayList
possui os seguintes campos: Object[] elementData
, int size
. Explique por que você deve armazenar size
separadamente se sempre puder usar elementData.length
? - Compare as interfaces
Queue
e Deque
. - Quem estende quem:
Queue
estende Deque
ou Deque
estende Queue
? - Por que
LinkedList
implementa List
e Deque
? -
LinkedList
é uma lista vinculada individualmente, uma lista duplamente vinculada ou uma lista vinculada de quatro? - Como iterar pelos elementos
LinkedList
na ordem inversa sem usar get(index)
lento? - O que
PriorityQueue
permite que você faça? -
Stack
é considerado "obsoleto". O que é recomendado para substituí-lo? Por que? - Por que precisamos
HashMap
se temos Hashtable
? - Qual é a diferença entre
HashMap
e IdentityHashMap
? Para que serve IdentityHashMap
? - Qual é a diferença entre
HashMap
e WeakHashMap
? Para que é usado WeakHashMap
? -
WeakHashMap
usa WeakReferences. Por que não criar SoftHashMap
no SoftReferences? -
WeakHashMap
usa WeakReferences. Por que não criar PhantomHashMap
em PhantomReferences? -
LinkedHashMap
- o que vem do LinkedList
e o que vem do HashMap
? - Como
SortedMap
é “classificado”, além do fato de que toString()
exibe todos os elementos em ordem? - Como funciona
HashMap
? - De acordo com Knuth e Cormen, existem duas implementações principais de tabelas hash: baseadas em endereçamento aberto e baseadas em encadeamento. Como
HashMap
é implementado? Por que você acha que essa implementação específica foi escolhida? Quais são os prós e os contras de cada abordagem? - Como funciona
HashMap
quando você tenta armazenar dois elementos nele por chaves com o mesmo hashCode()
, mas para as quais equals() == false
? - Qual é o número inicial de buckets em
HashMap
? - Qual é a estimativa da complexidade temporal das operações nos elementos de
HashMap
? HashMap
garante a complexidade de busca do elemento especificado? - É possível que
HashMap
degenere em uma lista mesmo com chaves que possuem hashCode()
diferentes? - Em que caso um elemento de
HashMap
pode ser perdido? - Por que
byte[]
não pode ser usado como chave em HashMap
? - Qual é o papel
equals()
e hashCode()
em HashMap
? - Qual é o número máximo
hashCode()
? - Qual é o pior tempo de execução para um método get(key) para uma chave que não está
HashMap
? - Qual é o pior tempo de execução do método get(key) para uma chave que está em
HashMap
? - Por que é que mesmo que uma chave em
HashMap
não seja necessária para implementar a interface Comparable
, uma lista duplamente vinculada sempre pode ser convertida em uma árvore vermelha e preta? - Quantas transições ocorrem quando
HashMap.get(key)
é chamado em uma chave que está na tabela? - Quantos novos objetos são criados quando você adiciona um novo elemento a
HashMap
? - Como e quando o número de buckets em
HashMap
aumenta? - Explique o significado dos parâmetros no construtor
HashMap(int initialCapacity, float loadFactor)
. -
HashMap
funcionará se todas as chaves adicionadas tiverem o mesmo hashCode()
? - Como iterar por todas as chaves
Map
? - Como iterar todos os valores
Map
? - Como iterar todos os pares de valores-chave em
Map
? - Quais são as diferenças entre
TreeSet
e HashSet
? - O que acontece se você adicionar elementos a
TreeSet
em ordem crescente? - Como
LinkedHashSet
é diferente do HashSet
? - Existe uma classe especial para
Enum
java.util.EnumSet
. Para que? Por que os autores não ficaram satisfeitos com HashSet
ou TreeSet
? - Quais são as maneiras de iterar os elementos de uma lista?
- Como posso obter objetos sincronizados de coleções padrão?
- Como obter uma coleção somente leitura?
- Escreva um programa de thread único que faça com que uma coleção lance
ConcurrentModificationException
. - Dê um exemplo de quando qualquer coleção lança
UnsupportedOperationException
. - Implemente a diferença simétrica de duas coleções usando os métodos
Collection
( addAll(...)
, removeAll(...)
, retainAll(...)
). - Como fazer um cache com “política de invalidação” usando LinkedHashMap?
- Como posso copiar os elementos de qualquer
collection
em um array em uma linha? - Como obter
List
com todos os elementos, exceto os 3 primeiros e últimos com uma chamada de List
? - Como converter
HashSet
em ArrayList
em uma linha? - Como converter
ArrayList
em HashSet
em uma linha? - Faça
HashSet
a partir das chaves HashMap
. - Faça
HashMap
de HashSet<Map.Entry<K, V>>
.
para o conteúdo
Java 8
- Que inovações apareceram no Java 8 e no JDK 8?
- O que é "lambda" ? Qual é a estrutura e os recursos de uso de uma expressão lambda?
- Quais variáveis as expressões lambda podem acessar?
- Como classificar uma lista de strings usando uma expressão lambda?
- O que é uma "referência de método"?
- Que tipos de referências de métodos você conhece?
- Explique a expressão
System.out::println
. - O que são “interfaces funcionais”?
- Para que servem as interfaces de função
Function<T,R>
, DoubleFunction<R>
, IntFunction<R>
e LongFunction<R>
? - Para que servem as interfaces funcionais
UnaryOperator<T>
, DoubleUnaryOperator
, IntUnaryOperator
e LongUnaryOperator
? - Para que servem as interfaces funcionais
BinaryOperator<T>
, DoubleBinaryOperator
, IntBinaryOperator
e LongBinaryOperator
? - Para que servem as interfaces funcionais
Predicate<T>
, DoublePredicate
, IntPredicate
e LongPredicate
? - Para que são utilizadas as interfaces funcionais
Consumer<T>
, DoubleConsumer
, IntConsumer
e LongConsumer
? - Para que servem as interfaces funcionais
Supplier<T>
, BooleanSupplier
, DoubleSupplier
, IntSupplier
e LongSupplier
? - Para que serve
BiConsumer<T,U>
? - Para que é necessária a interface funcional
BiFunction<T,U,R>
? - Para que serve a interface funcional
BiPredicate<T,U>
? - Para que são necessárias interfaces funcionais como
_To_Function
? - Para que são necessárias as interfaces de função
ToDoubleBiFunction<T,U>
, ToIntBiFunction<T,U>
e ToLongBiFunction<T,U>
? - Para que servem as interfaces de função
ToDoubleFunction<T>
, ToIntFunction<T>
e ToLongFunction<T>
? - Para que servem as interfaces funcionais
ObjDoubleConsumer<T>
, ObjIntConsumer<T>
e ObjLongConsumer<T>
? - O que é
StringJoiner
? - Quais são os métodos de interface
default
? - Como chamar
default
de uma interface em uma classe que implementa essa interface? - O que é um método de interface
static
? - Como chamar um método de interface
static
? - O que é
Optional
? - O que é
Stream
? - Quais são as diferentes maneiras de criar um stream?
- Qual é a diferença entre
Collection
e Stream
? - Para que é usado o método
collect()
em streams? - Por que
forEach()
e forEachOrdered()
são usados em streams? - Quais são os métodos
map()
e mapToInt()
, mapToDouble()
, mapToLong()
usados em streams? - Qual é o propósito do método
filter()
em streams? - Qual é o método
limit()
usado em streams? - Qual é o propósito do método
sorted()
em streams? - Quais são
flatMap()
, flatMapToInt()
, flatMapToDouble()
, flatMapToLong()
usados em streams? - Explique sobre o processamento paralelo em Java 8.
- Quais métodos definitivos de trabalhar com streams você conhece?
- Que métodos intermediários de trabalhar com streams você conhece?
- Como imprimir 10 números aleatórios na tela usando
forEach()
? - Como você pode exibir quadrados únicos de números usando
map()
? - Como exibir o número de linhas vazias usando o método
filter()
? - Como exibir 10 números aleatórios em ordem crescente?
- Como encontrar o número máximo em um conjunto?
- Como encontrar o número mínimo em um conjunto?
- Como obter a soma de todos os números de um conjunto?
- Como obter a média de todos os números?
- Quais métodos adicionais para trabalhar com matrizes associativas (mapas) apareceram no Java 8?
- O que é
LocalDateTime
? - O que é
ZonedDateTime
? - Como obter a data atual usando a API Date Time do Java 8?
- Como adicionar 1 semana, 1 mês, 1 ano, 10 anos à data atual usando a API Date Time?
- Como chegar na próxima terça-feira usando a API Date Time?
- Como obter o segundo sábado do mês atual usando a API Date Time?
- Como obter a hora atual com precisão de milissegundos usando a API Date Time?
- Como obter a hora local atual com precisão de milissegundos usando a API Date Time?
- Como definir uma anotação repetível?
- O que é
Nashorn
? - O que é
jjs
? - Que classe apareceu no Java 8 para codificação/decodificação de dados?
- Como criar um codificador e decodificador Base64?
para o conteúdo
Fluxos de E/S em Java
- Qual é a diferença entre IO e NIO?
- Quais recursos do NIO você conhece?
- O que são “canais” ?
- Que tipos de fluxos de E/S existem?
- Cite as principais classes de fluxos de E/S.
- Quais pacotes contêm as classes de fluxo de E/S?
- Quais subclasses da classe
InputStream
você conhece e para que servem? - Para que é usado
PushbackInputStream
? - Para que é usado
SequenceInputStream
? - Qual classe permite ler dados de um fluxo de bytes de entrada no formato de tipos de dados primitivos?
- Quais subclasses da classe
OutputStream
você conhece e para que servem? - Quais subclasses da classe
Reader
você conhece e para que servem? - Quais subclasses da classe
Writer
você conhece e para que servem? - Qual é a diferença entre
PrintWriter
e PrintStream
? - Qual é a diferença e o que
InputStream
, OutputStream
, Reader
, Writer
têm em comum? - Quais classes permitem converter fluxos de bytes em fluxos de caracteres e vice-versa?
- Quais classes permitem acelerar a leitura/escrita usando um buffer?
- Qual classe foi projetada para funcionar com elementos do sistema de arquivos?
- Quais métodos da classe
File
você conhece? - O que você sabe sobre a interface
FileFilter
? - Como selecionar todos os elementos de um determinado diretório por critério (por exemplo, com uma determinada extensão)?
- O que você sabe sobre
RandomAccessFile
? - Quais modos de acesso a arquivos
RandomAccessFile
possui? - Quais classes oferecem suporte à leitura e gravação de fluxos em formato compactado?
- É possível redirecionar fluxos de entrada/saída padrão?
- Qual caractere é o separador ao especificar um caminho em um sistema de arquivos?
- O que é “caminho absoluto” e “caminho relativo” ?
- O que é um “link simbólico” ?
para o conteúdo
Serialização
- O que é “serialização” ?
- Descreva o processo de serialização/desserialização usando
Serializable
. - Como posso alterar o comportamento padrão de serialização/desserialização?
- Como excluir campos da serialização?
- O que significa a palavra-chave
transient
? - Que efeito os modificadores de campo
static
e final
têm na serialização? - Como evitar a serialização?
- Como criar seu próprio protocolo de serialização?
- Qual é a função do campo
serialVersionUID
na serialização? - Quando você deve alterar o valor do campo
serialVersionUID
? - Qual é o problema com a serialização Singleton?
- Quais são as formas de controlar os valores de um objeto desserializado?
para o conteúdo
Multithreading
- Conte-nos sobre o modelo de memória Java?
- O que é "segurança de thread"?
- Qual é a diferença entre “competição” e “paralelismo” ?
- O que é “multitarefa cooperativa” ? Que tipo de multitarefa o Java usa? Qual é a razão desta escolha?
- O que são ordenação , semântica como se serial , consistência sequencial , visibilidade , atomicidade , acontecer antes , exclusão mútua , publicação segura ?
- Qual é a diferença entre um processo e um thread?
- O que são threads verdes e eles existem em Java?
- Como você pode criar um tópico?
- Qual é a diferença entre
Thread
e Runnable
? - Qual é a diferença entre
start()
e run()
? - Como forçar o início de um thread?
- O que é um “monitor” em Java?
- Defina o conceito de “sincronização”.
- Quais são os métodos de sincronização em Java?
- Em quais estados um thread pode estar?
- É possível criar novas instâncias de uma classe enquanto
static synchronized
está em execução? - Por que um mutex
private
pode ser necessário? - Como funcionam os métodos
wait()
e notify()
/ notifyAll()
? - Qual é a diferença entre
notify()
e notifyAll()
? - Por que os métodos
wait()
e notify()
são chamados apenas em um bloco sincronizado? - Qual é a diferença entre o método
wait()
com e sem parâmetro? - Qual é a diferença entre
Thread.sleep()
e Thread.yield()
? - Como funciona
Thread.join()
? - O que é impasse ?
- O que é livelock ?
- Como verificar se um thread está segurando o monitor de um recurso específico?
- Em que objeto ocorre a sincronização ao chamar um método
static synchronized
? - Para que é usada a palavra-chave
volatile
, synchronized
, transient
, native
? - Quais são as diferenças entre variáveis
volatile
e atômicas ? - Quais são as diferenças entre
java.util.concurrent.Atomic*.compareAndSwap()
e java.util.concurrent.Atomic*.weakCompareAndSwap()
. - O que significa "prioridade de thread" ?
- O que são “threads daemon” ?
- É possível transformar o thread principal de um programa em um daemon?
- O que significa “colocar um riacho para dormir” ?
- Qual é a diferença entre as duas interfaces
Runnable
e Callable
? - O que é
FutureTask
? - Quais são as diferenças entre
CyclicBarrier
e CountDownLatch
? - O que é condição de corrida ?
- Existe uma maneira de resolver o problema da condição de corrida ?
- Como parar o fluxo?
- Por que não é recomendado usar o método
Thread.stop()
? - O que acontece quando um thread lança uma exceção?
- Qual é a diferença entre
interrupted()
e isInterrupted()
? - O que é um "conjunto de threads" ?
- Qual deve ser o tamanho do pool de threads?
- O que acontece se a fila do pool de threads já estiver cheia, mas uma nova tarefa for enviada?
- Qual é a diferença entre
submit()
e execute()
de um pool de threads? - Quais são as diferenças entre uma pilha e um heap do ponto de vista multithreading?
- Como compartilhar dados entre dois threads?
- Qual opção de inicialização da JVM é usada para controlar o tamanho da pilha de um thread?
- Como obter um despejo de thread?
- O que é uma variável ThreadLocal ?
- Quais são as diferenças entre
synchronized
e ReentrantLock
? - O que é
ReadWriteLock
? - O que é um "método de bloqueio" ?
- O que é uma “estrutura Fork/Join” ?
- O que é
Semaphore
? - O que é Singleton de bloqueio verificado duas vezes ?
- Como criar um Singleton seguro para threads?
- Quais são os benefícios de objetos imutáveis?
- O que é giro ocupado ?
- Liste os princípios que você segue na programação multithread?
- Qual das seguintes afirmações sobre fluxos é falsa?
- Dados 3 fluxos T1, T2 e T3? Como implementar a execução na sequência T1, T2, T3?
- Escreva uma pilha mínima sem bloqueio (apenas dois métodos -
push()
e pop()
). - Escreva uma pilha mínima sem bloqueio (apenas dois métodos -
push()
e pop()
) usando Semaphore
. - Escreva um ArrayList mínimo sem bloqueio (apenas quatro métodos -
add()
, get()
, remove()
, size()
). - Escreva uma implementação thread-safe de uma classe com um método
BigInteger next()
sem bloqueio que retorna os elementos da sequência: [1, 2, 4, 8, 16, ...]
. - Escreva um buffer limitado multithread simples usando
synchronized
. - Escreva um buffer limitado multithread simples usando
ReentrantLock
.
para o conteúdo
Programação Reativa
- O que é programação reativa e em que ela difere da programação processual?
- Explique o conceito de fluxos de dados na programação reativa
- O que é o padrão Observer e como ele está subjacente à programação reativa?
- Descrever o papel do Observável e do Observador na programação reativa
- O que é contrapressão no contexto da programação reativa?
- Explique a diferença entre Quente e Frio Observável
- Qual é o papel das assinaturas na programação reativa?
- Como cancelar a assinatura de um thread para evitar vazamento de memória?
- Quais são os operadores no Project Reactor e para que são usados?
para o conteúdo
Servlets, JSP, JSTL
- O que é um “servlet” ?
- Quais são as vantagens da tecnologia servlet sobre CGI (Common Gateway Interface)?
- Qual é a estrutura de um projeto web?
- O que é um “contêiner de servlet” ?
- Por que precisamos de servidores de aplicativos se temos contêineres de servlets?
- Como um contêiner de servlet gerencia o ciclo de vida do servlet, quando e quais métodos são chamados?
- O que é um "descritor de implantação" ?
- Quais etapas precisam ser executadas ao criar servlets?
- Quando é necessário substituir o método
service()
? - Faz sentido definir um construtor para um servlet? Qual é a melhor maneira de inicializar os dados?
- Por que é necessário substituir apenas
init()
sem argumentos? - Quais são as tarefas mais comuns executadas em um contêiner de servlet?
- O que você sabe sobre filtros de servlet ?
- Por que os servlets usam ouvintes diferentes?
- Quando você deve usar filtros de servlet e quando deve usar ouvintes?
- Como implementar o lançamento de um servlet ao mesmo tempo que o lançamento do aplicativo?
- Como lidar com exceções lançadas por outro servlet na sua aplicação?
- O que é
ServletConfig
? - O que é
ServletContext
? - Quais são as diferenças entre
ServletContext
e ServletConfig
? - Para que serve a interface
ServletResponse
? - Para que serve a interface
ServletRequest
? - O que é
Request Dispatcher
? - Como chamar outro servlet de um servlet?
- Qual é a diferença entre
sendRedirect()
e forward()
? - Para que são usados os atributos de servlet e como você trabalha com eles?
- Como você pode permitir um impasse em um servlet?
- Como obter a localização real do servlet no servidor?
- Como obter informações do servidor de um servlet?
- Como obter o endereço IP do cliente no servidor?
- Quais classes de wrapper de servlet você conhece?
- Quais são as diferenças entre
GenericServlet
e HttpServlet
? - Por que a classe
HttpServlet
é declarada abstrata? - Quais são os principais métodos presentes na classe
HttpServlet
? - Devo me preocupar com a segurança de threads com servlets?
- Qual método HTTP não é imutável?
- Quais são os métodos para enviar dados do cliente para o servidor?
- Qual é a diferença entre os métodos
GET
e POST
? - Qual é a diferença entre
PrintWriter
e ServletOutputStream
? - É possível usar
PrintWriter
e ServletOutputStream
em um servlet ao mesmo tempo? - Conte-nos sobre a interface
SingleThreadModel
. - O que significa codificação de URL ? Como fazer isso em Java?
- Quais são os diferentes métodos de gerenciamento de sessões em servlets que você conhece?
- O que são biscoitos ?
- Quais métodos para trabalhar com cookies são fornecidos nos servlets?
- O que é reescrita de URL ?
- Por que precisamos e qual é a diferença entre
encodeURL()
e encodeRedirectURL()
? - O que é uma “sessão” ?
- Como notificar um objeto em uma sessão que a sessão é inválida ou foi encerrada?
- Qual é uma maneira eficiente de garantir que todos os servlets sejam acessíveis apenas ao usuário com a sessão correta?
- Como podemos fornecer segurança da camada de transporte para nossa aplicação web?
- Como organizar uma conexão com um banco de dados e fornecer log em um servlet?
- Quais são os principais recursos introduzidos na especificação Servlet 3 ?
- Quais métodos de autenticação estão disponíveis para um servlet?
- O que são páginas de servidor Java (JSP) ?
- Por que você precisa de JSP?
- Descreva como as páginas JSP são processadas, desde a solicitação ao servidor até a resposta ao usuário.
- Explique os estágios (fases) do ciclo de vida JSP.
- Explique os métodos de ciclo de vida JSP.
- Quais métodos de ciclo de vida JSP podem ser substituídos?
- Como posso impedir o acesso direto a uma página JSP de um navegador?
- Qual é a diferença entre conteúdo JSP dinâmico e estático ?
- Como comentar o código em JSP?
- Quais são os principais tipos de tags JSP?
- O que você sabe sobre ações JSP ( tag de ação e elementos de ação JSP ).
- Interação JSP-servlet-JSP .
- Quais escopos de variáveis existem em JSP?
- Quais objetos e métodos internos implícitos existem em uma página JSP?
- Quais objetos implícitos não estão disponíveis em uma página JSP normal?
- O que você sabe sobre
PageContext
e quais são os benefícios de usá-lo? - Como configurar parâmetros de inicialização para JSP?
- Por que não é recomendado usar scriptlets (elementos de script) em JSP?
- É possível definir uma classe dentro de uma página JSP?
- O que você sabe sobre linguagem de expressão JSP (EL)?
- Que tipos de operadores EL você conhece?
- Nomeie os objetos JSP EL implícitos e internos e como eles diferem dos objetos JSP.
- Como desabilitar a capacidade de usar EL em JSP?
- Como descobrir o tipo de método HTTP usando JSP EL?
- O que é JSTL (biblioteca de tags padrão JSP) ?
- Em quais grupos de tags consiste a biblioteca JSTL ?
- Qual é a diferença entre
<c:set>
e <jsp:useBean>
? - Qual é a diferença entre
<c:import>
e <jsp:include>
e a diretiva <%@include %>
? - Como você pode estender a funcionalidade do JSP?
- O que você sabe sobre como escrever tags JSP personalizadas?
- Dê um exemplo de uso de tags personalizadas.
- Como fazer quebra de linha em HTML usando JSP?
- Por que não é necessário configurar tags JSP padrão em
web.xml
? - Como você pode lidar com erros de página JSP?
- Como funciona o tratamento de erros com JSTL?
- Como o JSP está configurado no descritor de implementação.
- É possível usar Javascript em uma página JSP?
- Um objeto de sessão é sempre criado em uma página JSP, é possível desabilitar sua criação?
- Qual é a diferença entre
JSPWriter
e servlet PrintWriter
? - Descrever práticas gerais para trabalhar com JSP.
para o conteúdo
Bancos de dados
- O que é um “banco de dados” ?
- O que é um “sistema de gerenciamento de banco de dados” ?
- O que é um “modelo de dados relacional” ?
- Defina os termos chave “simples ”, “composta ”, “candidata” e “alternativa” .
- O que é uma "chave primária" ? Quais são os critérios para sua seleção?
- O que é uma "chave estrangeira" ?
- O que é "normalização" ?
- Quais são as formas normais?
- O que é "desnormalização" ? Para que é usado?
- Que tipos de relacionamentos existem em um banco de dados? Dar exemplos.
- O que são "índices" ? Para que eles são usados? Quais são suas vantagens e desvantagens?
- Que tipos de índices existem?
- Qual é a diferença entre índices agrupados e não agrupados?
- Faz sentido indexar dados que possuem um pequeno número de valores possíveis?
- Quando é uma varredura completa de um conjunto de dados melhor do que o acesso do índice?
- O que é uma "transação" ?
- Nomeie as principais propriedades de uma transação.
- Que níveis de isolamento de transações existem?
- Que problemas podem surgir com acesso paralelo usando transações?
para o conteúdo
SQL
- O que é "SQL" ?
- Que declarações SQL existem?
- O que
NULL
significa no SQL? - O que é uma "tabela temporária" ? Para que é usado?
- O que é uma "visão" e para que é usado?
- Qual é a sintaxe geral da instrução
SELECT
? - O que está
JOIN
? - Que tipos de
JOIN
existem? - É melhor usar
JOIN
ou as subconesas? - Para que é o operador
HAVING
? - Qual é a diferença entre o
HAVING
e WHERE
declarações? - Para que serve
ORDER BY
? - Para que serve
GROUP BY
operador? - Como
GROUP BY
o valor NULL
? - Qual é a diferença entre
GROUP BY
e declarações DISTINCT
? - Liste as principais funções agregadas.
- Qual é a diferença entre
COUNT(*)
e COUNT({column})
? - O que a declaração
EXISTS
? - Para que são os operadores
IN
, BETWEEN
, LIKE
os operadores usados? - Para que é a palavra -chave
UNION
usada? - Quais são as restrições de integridade de dados no SQL?
- Quais são as diferenças entre restrições
PRIMARY
e UNIQUE
? - Uma coluna que está sujeita a uma restrição
FOREIGN KEY
pode ser NULL
? - Como criar um índice?
- O que a declaração
MERGE
faz? - Qual é a diferença entre
DELETE
e TRUNCATE
? - O que é um "procedimento armazenado" ?
- O que é um "gatilho" ?
- O que é um "cursor" ?
- Descreva a diferença entre os tipos de dados
DATETIME
e TIMESTAMP
. - Para quais tipos numéricos não é possível usar operações de adição/subtração?
- Qual é o objetivo dos operadores
PIVOT
e UNPIVOT
no Transact-SQL? - Explique as funções básicas de classificação no Transact-SQL.
- Quais são os
INTERSECT
, EXCEPT
os operadores usados no Transact-SQL? - Escreva um pedido ...
para o conteúdo
JDBC
- O que é JDBC ?
- Quais são os benefícios de usar o JDBC?
- O que é um URL JDBC?
- Quais são as partes do JDBC?
- Liste os principais tipos de dados usados no JDBC. Como eles estão relacionados aos tipos de Java?
- Descreva as etapas básicas de trabalho com um banco de dados usando o JDBC.
- Como registrar um driver JDBC?
- Como estabelecer uma conexão com um banco de dados?
- Quais níveis de isolamento da transação são suportados no JDBC?
- Como as consultas do banco de dados são geradas?
- Qual é a diferença entre declaração e estatamento preparado?
- Como a consulta e os resultados do banco de dados são processados?
- Como chamar um procedimento armazenado?
- Como fechar uma conexão de banco de dados?
para o conteúdo
Teste
- O que é "testes de unidade" ?
- O que é "teste de integração" ?
- Como os testes de integração são diferentes dos testes de unidade?
- Que tipos de objetos de teste existem?
- Como o Stub é diferente de Mock ?
- O que são "acessórios" ?
- Que anotações de acessórios existem no Junit?
- Para que é a anotação
@Ignore
usada no Junit?
para o conteúdo
Log
- Que tipos de logs existem?
- Em que partes o sistema de log4j de log4j consiste?
- O que é o Logger no Log4J?
- O que é o Appender no log4j?
- O que é o layout no log4j?
- Liste os níveis de registro no log4j? Declarar a ordem de sua prioridade.
- Quais são as diferentes maneiras de configurar o log4j?
para o conteúdo
UML
- O que é uml ?
- O que são "diagrama" , "notação" e "metamodelo" na UML?
- Que tipos de gráficos existem?
- Que tipos de relacionamentos existem em um diagrama de estrutura de classe?
para o conteúdo
XML
- O que é XML ?
- O que é DTD ?
- Como o XML bem formado é diferente do XML válido ?
- O que é um "espaço para nome " no XML?
- O que é XSD? Quais são suas vantagens sobre o XML DTD?
- Que tipos existem no XSD?
- Quais métodos de leitura XML você conhece? Descreva os pontos fortes e fracos de cada método.
- Quando você deve usar o DOM e quando você deve usar o Sax , analisadores Stax ??
- Que maneiras de escrever XML você sabe?
- O que é Jaxp ?
- O que é XSLT ?
para o conteúdo
Padrões de design
- O que é um "padrão de design" ?
- Quais são as principais características dos modelos?
- Tipos de padrões de design.
- Dê exemplos de padrões básicos de design.
- Dê exemplos de padrões generativos de design.
- Dê exemplos de padrões de projeto estrutural.
- Dê exemplos de padrões de design comportamental.
- O que é um "Antipattern" ? Quais antipatadros você conhece?
- O que é injeção de dependência ?
para o conteúdo
HTML Basics
- O que é "html" ?
- O que é "xhtml" ?
- O que é
DOCTYPE
e por que é necessário? - Qual é o objetivo da tag
<head>
? - Qual é a diferença entre
<div>
e <span>
? - Como os comentários são marcados no HTML?
- Como você define o endereço do documento para ir?
- Como vincular a um endereço de e -mail?
- Qual é o objetivo da tag
<em>
? - Quais são as tags
<ol>
, <ul>
, <li>
para? - Quais são as tags
<dl>
, <dt>
, <dd>
para? - Quais são as tags
<tr>
, <th>
, <td>
para? - É necessário escrever o atributo
alt
na tag <img>
? - Em que caso é melhor escrever o código HTML?
- O que é um "mnemônico (entidade)"?
para o conteúdo
CSS Basics
- O que é "CSS" ?
- Como os comentários são representados no CSS?
- O que é um "seletor" ?
- Liste os principais tipos de seletores.
- O que é uma aula de pseudo?
- Quais seletores de atributos existem?
- Qual é a diferença entre
#my
e .my
? - Qual é a diferença entre
margin
e padding
? - Qual é a diferença entre os valores
0
e auto
na propriedade margin
? - Qual propriedade especifica a cor do fundo?
- Como remover o sublinhado para todos os links em uma página?
- Para que é a propriedade
clear
usada? - Como tornar o texto em todos os elementos
<p>
em negrito? - Como posso definir a cor vermelha para todos os elementos que têm a classe
red
?
para o conteúdo
Noções básicas da web
- O que é www ?
- O que é W3C ?
- Quais são as camadas do modelo OSI ?
- O que é TCP/IP ?
- O que é UDP ?
- Qual é a diferença entre TCP e UDP ?
- O que é um protocolo de transferência de dados? Quais protocolos você conhece?
- O que são http e https ? Como eles são diferentes?
- O que é FTP ?
- Qual é a diferença entre os métodos GET e POST ?
- O que é um tipo MIME ?
- O que é um servidor da web ?
- O que é aplicativo da web ?
- O que é servidor de aplicativos ?
- Qual é a diferença entre o servidor da web e o servidor de aplicativos ?
- O que é Ajax ? Como essa tecnologia funciona fundamentalmente?
- O que é WebSocket ?
- O que é JSON ?
- O que é um esquema JSON ?
- O que são cookies ?
- O que é uma "sessão" ?
- O que são "autorização" e "autenticação" ? Como eles são diferentes?
para o conteúdo
Apache Kafka
- O que é Apache Kafka?
- Componentes principais de Kafka
Arquitetura de componentes
- Tópico
- Arquitetura de tópicos
- Configurações de tópicos Kafka
- Corretor
- Arquitetura de corretor
- Configurações de corretor Kafka
- Produtor
- Arquitetura de Produtor
- Configurações do produtor
- Exemplo de configuração do produtor kafka
- Consumidor
- Arquitetura do consumidor
- Configurações do consumidor
- Exemplo de configuração do consumidor Kafka
Kafka API
- APIs básicas de kafka
- Qual é o papel da API do produtor?
- Qual é o papel da API do consumidor?
- Qual é o papel da API do conector?
- Qual é o papel da API dos fluxos?
- Qual é o papel da API de transações?
- Qual é o papel da API da cota?
- Qual é o papel da API do Adminclient?
Consumidor de kafka
- Por que você precisa de um coordenador de grupo?
- Para que é o tópico de batimentos cardíacos do consumidor?
- Como as mensagens de processos Kafka?
- Como o Kafka lida com a latência do consumidor?
- Quais são os métodos Subscribe () e Poll () usados?
- Para que serve o método de posição () usado?
- Quais são os métodos Commitsync () e CommitSync () usados?
Outras perguntas
- Para que serve um produtor idempotente?
- Para que serve a interface do Partiote?
- Para que serve o tópico de limpeza de log do corretor?
- Para que é usado o fabricante de espelho Kafka?
- Por que o registro de esquema é necessário?
- Por que você precisa de fluxos DSL?
- Como o Kafka fornece versão de mensagem?
- Como os consumidores recebem mensagens do corretor?
Comparação com outros componentes e sistemas
- Qual é a diferença entre o consumidor Kafka e o fluxo Kafka?
- Qual é a diferença entre os fluxos Kafka e o Apache Flink?
- Qual é a diferença entre Kafka e Flume?
- Qual é a diferença entre Kafka e RabbitMQ?
para o conteúdo
Materiais adicionais
- 4 canais inteligentes do YouTube sobre entrevistas técnicas
- Uma lista de perguntas sofisticadas que me fizeram durante as entrevistas que tive
- Entrevista de emprego em inglês: como se preparar e o que responder
- Engenheiro sênior procurando trabalho. Sobre tarefas de entrevistas técnicas e questões teóricas
- O que perguntar a um entrevistador durante uma entrevista técnica
- Perguntas da entrevista do Spring Boot
- Principais perguntas da entrevista na estrutura da primavera
- Perguntas da entrevista da primavera
- Perguntas da entrevista sobre hibernação
para o conteúdo
Fontes
- Perguntas de entrevista de desenvolvedor Junior Java