CodeGym /Blogue Java /Random-PT /As 21 principais perguntas da entrevista sobre Java
John Squirrels
Nível 41
San Francisco

As 21 principais perguntas da entrevista sobre Java

Publicado no grupo Random-PT
Existem inúmeras perguntas de entrevistas em Java e não podemos compilar todas elas em um artigo. No entanto, aqui você pode encontrar algumas perguntas muito comuns sobre entrevistas em Java, de acordo com gerentes de RH de empresas de TI. As 21 principais perguntas sobre entrevistas em Java - 1
  1. “Desmontar” public static void main(String args[]).

    Uma das perguntas populares da entrevista em java para calouros e muito fácil.

    • publicé um modificador de acesso. Nós o usamos para especificar o acesso a este método. Aqui o modificador é “público”, então qualquer Classe tem acesso a este método.

    • static. Esta palavra-chave Java significa que usamos este método sem criar um novo Objeto de uma Classe.

    • Voidé o tipo de retorno do método. Isso significa que o método não retorna nenhum valor.

    • mainé o nome do método. A JVM o “conhece” como um ponto de entrada para um aplicativo (deve ter uma assinatura específica). Mainé um método onde ocorre a execução principal.

    • String args[]. Este é o parâmetro passado para o método principal. Aqui temos os argumentos do tipo String que seu aplicativo Java aceita quando você o executa. Você pode digitá-los no terminal.

  2. Qual é a diferença entre equals()e ==?

    Primeiro, “ ==” é um operador enquanto equals()é um método. Usamos ==operador para comparação de referência (ou comparação de endereço) e equals()método para comparação de conteúdo. Isso significa que ==verifica se ambos os objetos apontam para o mesmo local de memória enquanto equals()compara os valores nos objetos.

  3. Podemos executar um programa sem main()método?

    Muitas perguntas básicas da entrevista em Java são realmente fáceis. Como este. Portanto, a resposta curta é: sim, podemos. Por exemplo, podemos fazer isso usando blocos estáticos.

    Você pode usar o bloco estático para inicializar o membro de dados estáticos. Ele é executado antes do mainmétodo, no momento do carregamento da classe.

    
    class Example{  
     Static{
    System.out.println("static block is invoked");
    }  
      public static void main(String args[]){  
       System.out.println("Now main method");  
      }  
    }
    

    A saída é:

    
    static block is invoked
    Now main method
    
  4. E a ausência total do método principal? Se você tentar executar uma classe comum sem o método principal, receberá o próximo erro: Método principal não encontrado na classe Teste, defina o método principal como: public static void main (String [] args) ou um aplicativo JavaFX a classe deve estender javafx.application.Application. O próprio erro diz que se este for um aplicativo JavaFX e a classe for herdada de javafx.application.Application, então é possível.
  5. O que é immutableobjeto? Você pode criar immutableobjeto?

    Você não pode modificar objetos de uma immutableclasse após sua criação. Portanto, depois de criá-los, você não poderá alterá-los. Se você tentar modificar Immutableo objeto, obterá um novo objeto (clone) e alterará esse clone durante a criação.

    Um bom exemplo é String, é immutableem Java. Isso significa que você não pode alterar o objeto em si, mas pode alterar a referência ao objeto.

  6. Quantos objetos são criados no código a seguir?

    Uma das perguntas da entrevista técnica java que substitui #4.

    
    String s1="Hello";  
    String s2="Hello";  
    String s3="Hello";  
    

    A resposta é “apenas um” porque Java tem um String Pool. Quando criamos um objeto String usando o operador new(), ele cria um novo objeto na memória heap. Se usarmos a sintaxe literal de String, como em nosso exemplo, ela pode retornar um objeto existente do pool de String, caso já exista.

  7. Quantos objetos são criados no código a seguir?

    
    String s = new String("Hello");
    

    Existem 2 objetos. Um está no pool constante de string (se ainda não estiver presente) e o outro está no heap.

  8. Qual é a diferença entre Stringe StringBuilderclasses StringBufferem Java?

    Há um dos líderes nas principais perguntas da entrevista em java.

    Primeiro de tudo Stringé uma classe imutável. Isso significa que você não pode modificar seu conteúdo depois de criado. Enquanto StringBuffere StringBuildersão classes mutáveis, você pode alterá-las mais tarde. Se mudarmos o conteúdo do Stringobjeto, ele cria uma nova string portanto não modifica a original. É por isso que o desempenho com StringBufferé melhor do que com String.

    A principal diferença entre os métodos de StringBuffere StringBuilderthat são sincronizados enquanto os de não são.StringBufferStringBuilder

  9. Existe alguma diferença em Stringque foi criado usando literal e com new()operador?

    Há. Se criarmos uma String com o new()operador, ela aparecerá no heap e no pool de strings (se ainda não estiver presente). Se você criar um Stringusando um literal, ele será criado no pool de strings (se ainda não estiver presente). Um pool de strings é uma área de armazenamento dentro do heap, que armazena literais de strings.

  10. Você pode substituir privateou staticmétodo em Java?

    Uma das perguntas complicadas da entrevista em java para novatos. Você realmente não pode substituir privateou staticmétodo em Java.

    Você não pode substituir os privatemétodos porque o escopo do especificador de acesso privado está apenas dentro da classe. Quando você vai sobrescrever algo, devemos ter classe pai e filho. Se o método da superclasse for private, a classe filha não poderá usá-lo e os métodos na classe filha serão tratados como novos métodos (não substituídos).

    Staticos métodos também não podem ser substituídos, porque staticos métodos são parte da própria classe e não parte de qualquer objeto da classe. Claro que você pode declarar o mesmo staticmétodo com a mesma assinatura em classes filhas, mas, novamente, eles serão tratados como novos métodos.

  11. Diferença entre Abstract ClasseInterface

    Uma das perguntas populares da entrevista do desenvolvedor java que se baseia nos princípios OOP. Em primeiro lugar, em Java interfacedefine um comportamento e abstract classcria uma hierarquia.

    classe abstrata Interface
    É possível ter um corpo de método (métodos não abstratos) na classe abstrata A interface pode ter apenas métodos abstratos. No Java 8 ou mais recente, tornou-se possível definir métodos padrão e implementá-los diretamente na interface. Além disso, as interfaces no Java 8 podem ter métodos estáticos.
    As variáveis ​​de instância podem estar na classe abstrata Uma interface não pode ter variáveis ​​de instância.
    Construtores são permitidos A interface não pode ter nenhum construtor.
    Métodos estáticos são permitidos Métodos estáticos não são permitidos
    A classe pode ter apenas um pai abstrato Uma interface pode implementar diferentes classes
    A classe abstrata pode fornecer a implementação da interface. A Interface não pode fornecer a implementação da classe abstrata.
    Uma classe abstrata pode estender a outra classe Java e implementar várias interfaces Java. Uma interface só pode estender a outra interface Java.
    Uma classe abstrata Java pode ter membros de classe privados e protegidos Os membros de uma interface Java são públicos por padrão
  12. Podemos declarar staticvariáveis ​​e métodos em uma abstractclasse?

    Sim, é possível declarar staticvariáveis ​​e métodos em abstractmethod. Não há necessidade de criar um objeto para acessar o contexto estático. Portanto, podemos acessar o contexto estático declarado dentro da abstractclasse usando o nome da abstractclasse.

  13. Quais tipos de áreas de memória são alocadas pela JVM?

    Área de classe armazena estruturas por classe, por exemplo, pool de constantes de tempo de execução, campos, dados de método e todo o código para métodos.

    Heap é uma área de dados de tempo de execução onde a memória é alocada para os objetos.

    Pilha armazena quadros. Ele contém variáveis ​​locais e resultados parciais e participa da chamada e retorno do método. Cada encadeamento possui uma pilha JVM privada, criada ao mesmo tempo que o encadeamento. Um novo quadro é criado cada vez que um método é invocado. Um quadro é destruído quando sua invocação de método é concluída.

    Program Counter Register contém um endereço da instrução da máquina virtual Java que está sendo executada no momento.

    Native Method Stack contém todos os métodos nativos usados ​​no aplicativo.

  14. Por que a herança múltipla não é permitida em java?

    Seria realmente complicado. Imagine três classes A, Be Ce Cherdam Ae B. Agora, Aas Bclasses e têm o mesmo método e você o chama de um objeto de classe filho... Qual deles? A's ou B's? Aqui temos ambiguidade.

    se você tentar herdar duas classes, o Java renderiza um erro de tempo de compilação.

  15. Podemos sobrecarregar o main()método?

    Claro, podemos ter muitos mainmétodos em um programa Java usando sobrecarga de método. Experimente!

  16. Podemos declarar um construtor como final?

    Não. Um construtor não pode ser declarado como finalporque não pode ser herdado. Portanto, não faz sentido declarar construtores como final. No entanto, se você tentar fazer isso, o compilador Java apresentará um erro.

  17. Podemos declarar uma interface como final?

    Não, não podemos fazer isso. Uma interface não pode ser finalporque a interface deve ser implementada por alguma classe de acordo com sua definição. Portanto, não faz sentido fazer uma interface final. No entanto, se você tentar fazer isso, o compilador mostrará um erro.

  18. Qual é a diferença entre static bindinge dynamic binding?

    O bindingque pode ser resolvido em tempo de compilação pelo compilador é chamado staticou ligação antecipada. Bindingde todos os métodos static, privatee finalé feito em tempo de compilação.

    No Dynamic bindingcompilador não é possível escolher um método a ser chamado. Substituir é um exemplo perfeito de dynamic binding. Na substituição, as classes pai e filho têm o mesmo método.

    
    Static Binding
    class Cat{  
     private void talk()
    {System.out.println("cat is mewing...");
    }  
      
     public static void main(String args[]){  
      Cat cat=new Cat();  
      cat.talk();  
     }  
    }  
    Dynamic Binding
    class Animal{  
     void talk(){
    System.out.println("animal is talking...");
    }  
    }  
      
    class Cat extends Animal{  
     void talk(){
    System.out.println("cat is talking...");
    }    
     public static void main(String args[]){  
      Animal animal=new Cat();  
      animal.talk();  
     }  
    }
    
  19. Como criar uma classe somente leitura em Java?

    Você pode fazer isso tornando todos os campos da classe privados. A classe somente leitura possui apenas métodos getter que retornam a propriedade privada da classe para o mainmétodo. Você não pode modificar esta propriedade, o motivo é a falta do método setters.

    
    public class HockeyPlayer{    
    private String team ="Maple leaf";    
    public String getTeam(){    
    return team;    
    }    
    }
    
  20. Como criar uma classe somente gravação em Java?

    Novamente, você deve criar todos os campos da classe private. Agora, sua classe somente gravação deve ter apenas métodos setter e nenhum getter. Portanto, não podemos ler as propriedades da classe.

    
    public class HockeyPlayer{       
    private String team;    
    public void setTeam(String college){    
    this.team = team;    
    }    
    }    
    
  21. Cada trybloco deve ser seguido por um catchbloco, não é?

    Não. Não é uma necessidade. Cada trybloco pode ser sem um catchbloco. Ele pode ser seguido por um bloco catch ou um bloco final ou mesmo sem eles.

    
    public class Main{  
         public static void main(String []args){  
            try{  
                int variable = 1;   
                System.out.println(variable/0);  
            }  
            finally  
            {  
                System.out.println("the other part of the program...");  
            }  
         }  
    }
    

    Saída:

    
    Exception in thread main java.lang.ArithmeticException:/ by zero
    the other part of the program...
    

    Mais um exemplo:
    
    class Main {
            public static void main(String[] args) throws IOException {
                try(InputStreamReader inputStreamReader = new InputStreamReader(System.in);
                    BufferedReader reader = new BufferedReader(inputStreamReader)){
                    System.out.println("test");
                }
            }
        }
    

    Saída:

    
    test
    

    PS: Antes do Java 8, os métodos nas interfaces podiam ser apenas abstratos. No Java 8 ou mais recente, tornou-se possível definir métodos padrão e implementá-los diretamente na interface.
  22. Qual é a diferença entre throwas throwspalavras-chave e?

    Throwsé usado para declarar uma exceção, então funciona de forma semelhante ao try-catchbloco. ThrowA palavra-chave é usada para lançar uma exceção explicitamente de um método ou qualquer outro bloco de código.

    Throwé seguido por uma instância de Exceptionclasse e throws é seguido por nomes de classe de exceção.

    Throwé usado no corpo do método para lançar uma exceção. Throwsé utilizado em uma assinatura de método para declarar as exceções que podem ocorrer nas declarações presentes no método.

    É permitido lançar uma exceção por vez, mas você pode lidar com várias exceções declarando-as usando throwa palavra-chave. Você pode declarar várias exceções, por exemplo, public void method()throws IOException, SQLException.

Aqui tivemos apenas algumas perguntas e respostas de entrevistas em java. Este artigo é o primeiro de uma série de entrevistas. O próximo (em breve) é sobre questões de estrutura de dados.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION