JavaRush /Blogue Java /Random-PT /Pausa para café #101. 19 perguntas essenciais da entrevis...

Pausa para café #101. 19 perguntas essenciais da entrevista sobre Java e exemplos curtos de respostas

Publicado no grupo Random-PT
Fonte: Hackernoon Aqui estão algumas perguntas e respostas que frequentemente surgem em entrevistas sobre Java.

1. O que é o Kit de Desenvolvimento Java (JDK)?

O JDK é um kit de desenvolvimento de software que inclui as ferramentas e bibliotecas necessárias para desenvolver aplicativos Java.

2. O que o Java Runtime Environment (JRE) faz?

JRE refere-se ao Runtime Environment no qual o bytecode Java é executado. O JRE mantém arquivos e bibliotecas durante o tempo de execução.

3. O que a Java Virtual Machine (JVM) faz?

A JVM é uma máquina abstrata que fornece um ambiente de tempo de execução no qual o bytecode Java pode ser executado.

4. Java é independente de plataforma. Por que?

Em qualquer outra linguagem de programação, o código-fonte é compilado em código executável e o código pode não ser executado em todas as plataformas. Ao usar JVM podemos tornar o bytecode compreensível para qualquer plataforma e este bytecode é independente de plataforma. Embora a JVM seja diferente para cada plataforma, Java é independente de plataforma, pois não depende de nenhum tipo de plataforma.

5. Java não é 100% orientado a objetos. Por que?

Porque Java usa oito tipos de dados primitivos como boolean, byte, char, int, float, double, long, short que não são objetos.

6. O que são construtores em Java?

Um construtor é um bloco de código usado para inicializar objetos. Sintaxe:
class DemoClass
{
   // constructor name is same as class name
   DemoClass()
   {
      ....
   }
}
// calls DemoClass() constructor
DemoClass obj = new DemoClass();
Exemplo:
public class ConstructorDemo
{
   int a; // class attribute
   // create constructor for class ConstructorDemo
   ConstructorDemo()
   {
      a = 26; // initial value for class attribute 'a'
   }
   public static void main(String[] args)
   {
      // creating object for ConstructorDemo class
      // here we're calling constructor ConstructorDemo()
      ConstructorDemo obj = new ConstructorDemo();
      System.out.println(obj.a);
   }
}
Resultado:
26

7. O que uma classe singleton faz?

As classes singleton só podem ter um objeto (instância de classe) por vez. Depois que o objeto é criado e tentamos instanciar a classe singleton , a nova variável também aponta para o primeiro objeto criado.

8. O que são classes wrapper em Java?

As classes wrapper permitem que tipos de dados primitivos sejam convertidos em um objeto e vice-versa. Exemplo:
int a = 7; // using primitive datatype
Integer a = new Integer(7); // using wrapper class

9. Qual é a diferença entre o operador == e o método de igualdade em Java?

Em geral, == é um operador e equals() é um método. Usamos o operador == para fazer referência a objetos de comparação no heap. Não existe conceito de sobrecarga de operador em Java. Apesar disso, o operador == é utilizado para verificar se o endereço de dois objetos é igual ou não. Ou seja, o operador == verifica se ambos os objetos apontam para o mesmo local de memória ou não. O operador == também é usado para comparar tipos de objetos e tipos primitivos, como booleano. Enquanto o método equals() da classe String compara o conteúdo de dois objetos.

10. Quais são os conceitos de OOP em Java?

  • Abstração é definida como ocultar a implementação interna e exibir apenas as informações necessárias.
  • Herança é o procedimento de conversão de todas as propriedades e comportamento de uma classe pai (superclasse) em uma classe filha (subclasse).
  • Encapsulamento é o procedimento de vincular dados ou variáveis ​​e métodos.
  • Polimorfismo significa literalmente muitas formas. Polimorfismo é a capacidade de um método de realizar diferentes tarefas. Isso pode ser alcançado usando métodos.

11. Por que o método main() é sempre estático em Java?

Porque não há necessidade de chamar um método estático em um objeto. Se main() fosse um método não estático, a Java Virtual Machine deve primeiro criar seu objeto e depois chamar o método main() , o que fará com que memória adicional seja alocada.

12. Por que as strings são imutáveis ​​em Java?

Strings em Java são imutáveis ​​porque os objetos String são armazenados em cache no pool de constantes de string .

13. O que são arrays e ArrayList em Java?

Uma matriz é um objeto que contém um número fixo de elementos de tipo semelhante.
  1. ArrayList faz parte da estrutura da coleção.

  2. ArrayList implementa a interface de lista.

  3. Um ArrayList é um array escalonável que cresce dinamicamente à medida que os elementos são adicionados e diminui à medida que os elementos são removidos.

  4. Para operações de recuperação frequentes, Java ArrayList é a melhor escolha . Porque os elementos de um ArrayList são armazenados em locais de memória consecutivos.

  5. ArrayList não pode conter tipos de dados primitivos como int, double, char e long.

  6. ArrayList pode conter objetos de classe String e wrapper ( Double , Integer ).

  7. ArrayList permite duplicar elementos.

  8. ArrayList preserva a ordem de inserção.

  9. ArrayList é amplamente utilizado devido à sua funcionalidade e flexibilidade. Ele foi projetado para armazenar coleções heterogêneas de objetos.

  10. Um ArrayList pode ter qualquer número de valores nulos.

14. Qual é a diferença entre HashSet e HashMap em Java?

Em HashSet :
  1. Podemos armazenar objetos em um HashSet . Por exemplo, HashSet: {"Hello", "World"} .

  2. O pedido de inserção não é preservado. É baseado em código hash.

  3. Possui um método add() .

  4. Implementa a interface Set .

  5. Não permite elementos duplicados.

  6. Permite um único valor nulo.

No HashMap :
  1. No HashMap podemos armazenar pares de chave e valor. Por exemplo, {1 -> “Olá”, 2 -> “Mundo”} .

  2. Não suporta pedido de inserção. É baseado na função hash.

  3. Tem um método put() .

  4. Implementa a interface do mapa.

  5. Permite valores duplicados. Não permite chaves duplicadas.

  6. Permite uma única chave nula e qualquer número de valores nulos.

16. Qual é a diferença entre this e super em Java?

A palavra-chave esta em Java:
  1. esta é uma palavra-chave que é uma variável de referência que se refere ao objeto atual.

  2. Pode ser usado para chamar implicitamente o método da classe atual.

  3. A palavra-chave this() , usada para chamar o construtor da classe atual.

  4. Isso pode ser usado para passar como argumento ao chamar um método.

Super palavra-chave em Java:
  1. A palavra-chave super é uma variável de referência usada para se referir ao objeto imediato da classe pai.

  2. super pode ser usado para chamar diretamente um método de uma classe pai, um construtor de uma classe pai e para acessar métodos de uma classe base.

17. Qual é a instrução break e continue em Java?

Se uma instrução break ocorrer em um loop, o loop terminará e o controle passará para a próxima instrução no mesmo loop. Exemplo:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a == 3)
         {
            // breaking loop
            break;
         }
         System.out.println(a);
      }
   }
}
Resultado:
12
A instrução continue passa para a próxima iteração do loop dependendo de uma determinada condição. Exemplo:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a % 2 != 0)
         {
            continue;
         }
         System.out.println(a + " ");
      }
   }
}
Resultado:
2 4 6 8 10

18. O que são modificadores de acesso em Java?

Os modificadores de acesso definem o limite ou escopo de uma variável, construtor, classe ou método. Existem quatro tipos de modificadores de acesso em Java:
  1. Modificador de acesso privado.
  2. Modificador de acesso protegido.
  3. Modificador de compartilhamento.
  4. Modificador de acesso padrão.

19. Qual é a diferença entre loop for e loop for each em Java?

para loop :
  1. Não possui uma sequência executável. No loop for, podemos alterar o contador como desejarmos.
  2. Apareceu logo no início, no JDK 1.
  3. Não há necessidade de implementar a interface.
  4. Pode ter acesso ao índice. Portanto, é possível substituir um elemento em um array.
  5. O contador pode aumentar e diminuir.
Para cada ciclo :
  1. Realizado sequencialmente. O contador aumenta em um.
  2. Apareceu pela primeira vez no JDK 5.
  3. Para iterar em contêineres usando um loop for-each, o contêiner deve implementar a interface Iterable.
  4. Não é possível substituir o elemento neste índice porque o índice do array não pode ser acessado.
  5. Só pode iterar em ordem crescente, não pode diminuir.
Exemplo da diferença entre os loops for each e for :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DifferenceBetween
{
   public static void main(String[] args)
   {
      List<String> players = new ArrayList<>(Arrays.asList("Virat", "Rohit", "Dhoni"));
      // iterate over List using for loop
      System.out.println("using for loop: ");
      for(int a = 0; a < players.size(); a++)
      {
         System.out.println(players.get(a));
      }
      // iterate over List using enhanced for loop
      System.out.println("using for each loop: ");
      for(String str : players)
      {
         System.out.println(str);
      }
   }
}
Resultado para for e for each loops:
Virat Rohit Dhoni.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION