10 perguntas obrigatórias para qualquer entrevista de emprego para um cargo de desenvolvedor de back-end Java
Fonte: Medium O autor do artigo compartilha sua experiência pessoal ao passar em diversas entrevistas para o cargo de Java Backend Developer. As entrevistas costumam ser difíceis. Portanto, seria uma boa ideia conhecer as perguntas antes de fazer a entrevista. Como passei por diversas entrevistas nos últimos meses, agora posso compartilhar com vocês algumas das perguntas que encontrei com mais frequência. Candidatei-me a uma posição como desenvolvedor Java backend com 1 a 3 anos de experiência.1. Java e seus recursos
O entrevistador geralmente perguntará sobre a versão mais recente do Java que você está usando e seus recursos. Eu usei principalmente o Java 8 e recebi perguntas sobre fluxos de API, expressões lambda, interface funcional e assim por diante. O entrevistador normalmente pergunta sobre esses recursos e aplicativos baseados neles.2. Funcionamento interno do HashMap
A maioria das entrevistas que participei tinha essa pergunta. Depois de explicar como funciona, alguns perguntaram sobre o tamanho padrão do HashMap, outros perguntaram mais sobre coleções Java.3. Erros e exceções
A diferença entre Erro e Exceção é uma pergunta muito comum feita em entrevistas. Também perguntou o que são exceções verificadas e não verificadas.4. Multithreading
Multithreading é um conceito muito importante para entrevistas, geralmente são feitas perguntas sobre Thread, classes Runnable, diferenças entre elas e casos de uso de ambas. Aconselho também que você estude o framework Executor.5. Strings e imutabilidade
A maioria dos entrevistadores perguntou sobre a imutabilidade na classe de string e, às vezes, perguntou sobre o construtor de string e o buffer de string (se você dissesse que eram strings alternativas mutáveis). Às vezes eles perguntavam como criar uma classe imutável.6. Coleta de lixo
A coleta de lixo em Java é um tópico muito importante para se preparar para entrevistas. Às vezes, são feitas perguntas sobre o ciclo de vida da coleta de lixo e os diferentes métodos de coleta de lixo.7. Comparador e Comparável em Java
As perguntas mais comuns são quando usar Comparator e Comparable em Java e qual é a diferença entre eles.8. Padrões de Design Java
Quando se trata de padrões de design Java, as questões geralmente começam com os diferentes padrões usados no projeto atual. Às vezes, são feitas perguntas sobre quando usar cada um deles. Também questionado sobre a criação de uma classe imutável em Java.9. Final, Finalmente e Finalizar
A diferença entre as palavras-chave final, finalmente e finalizar é uma pergunta muito comum feita em entrevistas. Como pergunta adicional, eles perguntam sobre as opções de uso de cada palavra-chave.10. Serialização e desserialização em Java
Serialização e desserialização são tópicos muito importantes para se preparar para entrevistas. Geralmente questionado sobre casos de uso, às vezes sobre hibernação e JPA. Esperançosamente, se você estiver enfrentando uma entrevista para um cargo de desenvolvedor Java Server Side em breve, preparar as perguntas mencionadas aqui irá ajudá-lo.Implementando uma fila em Java
Fonte: Faun.pub Graças a esta publicação, você aprenderá como implementar uma Queue em Java.O que é uma fila?
Uma Fila é uma estrutura de dados linear na forma de uma sequência de acesso aos elementos de acordo com o princípio “primeiro a entrar, primeiro a sair”. Isso significa que o elemento inserido primeiro será removido primeiro. Ou seja, os elementos são removidos na ordem em que foram inseridos. A fila consiste em duas partes: Front (frente, onde os elementos são removidos) e Back (atrás, onde os elementos são inseridos). Operações de fila comuns: as seguintes operações são comumente usadas em uma fila:- Enfileirar - Adiciona um elemento do final da fila.
- Dequeue - Remove um elemento do início da fila.
- Front/Peek - retorna o valor do elemento na frente da fila, sem excluir (retirar) o elemento da fila.
- IsEmpty – verifica se a fila está vazia.
- IsFull – verifica se a fila está cheia.
- Display - Imprime todos os itens da fila.
Implementação de código:
public class Example {
public static void main(String[] args) {
Queue myQueue = new Queue();
myQueue.enQueue(3);
myQueue.enQueue(2);
myQueue.enQueue(1);
myQueue.display();
myQueue.deQueue();
myQueue.peak();
}
}
class Queue {
int queueLength = 3;
int items[] = new int[queueLength];
int front = -1;
int back = -1;
boolean isFull(){
if(back == queueLength - 1){
return true;
} else {
return false;
}
}
boolean isEmpty(){
if(front == -1 && back == -1){
return true;
} else {
return false;
}
}
void enQueue(int itemValue) {
if(isFull()){
System.out.println("Queue is full");
} else if(front == -1 && back == -1){
front = back = 0;
items[back] = itemValue;
} else{
back++;
items[back] = itemValue;
}
}
void deQueue(){
if(isEmpty()){
System.out.println("Queue is empty. Nothing to dequeue");
} else if (front == back){
front = back = -1;
} else {
front++;
}
}
void display(){
int i;
if(isEmpty()){
System.out.println("Queue is empty");
} else {
for(i = front; i <= back; i++){
System.out.println(items[i]);
}
}
}
void peak(){
System.out.println("Front value is: " + items[front]);
}
}
Explicação:
-
Primeiro criamos nossas variáveis e seus parâmetros. Usamos 3 como o número máximo de elementos que podem ser enfileirados no array. Definimos o índice inicial da frente (Front) e de trás (Back) como -1.
-
A seguir definiremos a funcionalidade de isEmpty e isFull .
-
O método isEmpty() é bastante simples, para o método isFull() nosso número máximo de elementos permitidos em um array é 3, mas três elementos no array não são denotados pelo índice 3, mas por 2, já que o primeiro índice é 0. Então o comprimento máximo é menos 1 nos dá o índice 2, que é a terceira célula da matriz. Quando todas as células estão enfileiradas com um valor até a terceira célula, a matriz está cheia.
-
enQueue - se o array estiver cheio, receberemos uma mensagem informando que está cheio. Se as partes Front e Back forem -1, então o elemento será atribuído à primeira célula no índice 0 - caso contrário, o valor será inserido e a posição posterior será incrementada.
-
deQueue - se o array estiver vazio, recebemos a mensagem correspondente. Se a parte frontal encontrar a parte traseira, redefiniremos seu índice para -1. Se as duas últimas condições não se aplicarem, então a Frente será aumentada.
-
display - se o array não estiver vazio, iteramos e imprimimos todos os elementos.
-
peak - Isso simplesmente imprime o valor do elemento inicial.
GO TO FULL VERSION