100+ Java Perguntas e respostas da entrevista (2025)
Java Programação de perguntas e respostas de entrevistas para calouros
1) Qual é a diferença entre uma Classe Interna e uma Subclasse?
Uma classe interna é uma classe aninhada em outra classe. Uma classe interna tem direitos de acesso para a classe que a está aninhando e pode acessar todas as variáveis e métodos definidos na classe externa.
Uma subclasse é uma classe que herda de outra classe chamada superclasse. A subclasse pode acessar todos os métodos e campos públicos e protegidos de sua superclasse.
👉 Download gratuito de PDF: Java Perguntas e respostas da entrevista >>
2) Quais são os vários especificadores de acesso para Java aulas?
In Java, os especificadores de acesso são as palavras-chave usadas antes de um nome de classe que define o escopo de acesso. Os tipos de especificadores de acesso para classes são:
1) Público: Classe, Método, Campo são acessíveis de qualquer lugar.
2) Protegido: Método, Campo podem ser acessados da mesma classe a que pertencem ou das subclasses, e da classe do mesmo pacote, mas não de fora.
3) Padrão: Método, campo, classe podem ser acessados apenas do mesmo pacote e não de fora de seu pacote nativo.
4) Privado: Método, Campo podem ser acessados da mesma classe à qual pertencem.
3) Qual é a finalidade dos métodos estáticos e das variáveis estáticas?
Quando há um requisito para compartilhar um método ou variável entre vários objetos de uma classe em vez de criar cópias separadas para cada objeto, usamos a palavra-chave estática para tornar um método ou variável compartilhado para todos os objetos.
4) O que é encapsulamento de dados e qual o seu significado?
Encapsulamento é um conceito em Programação Orientada a Objetos para combinar propriedades e métodos em uma única unidade.
O encapsulamento ajuda os programadores a seguir uma abordagem modular para o desenvolvimento de software, pois cada objeto possui seu próprio conjunto de métodos e variáveis e executa suas funções independentemente de outros objetos. O encapsulamento também serve para ocultar dados.
5) O que é uma classe singleton? Dê um exemplo prático de seu uso.
Uma classe singleton em java pode ter apenas uma instância e, portanto, todos os seus métodos e variáveis pertencem a apenas uma instância. O conceito de classe singleton é útil para situações em que há necessidade de limitar o número de objetos para uma classe.
O melhor exemplo de cenário de uso singleton é quando há um limite de ter apenas uma conexão com um banco de dados devido a algumas limitações de driver ou devido a quaisquer problemas de licenciamento.
6) O que são Loops Java? Quais são os três tipos de loops?
Looping é usado em programação para executar uma instrução ou bloco de instrução repetidamente. Há três tipos de loops em Java:
1) Para Loops
Loops For são usados em Java para executar instruções repetidamente por um determinado número de vezes. Os loops For são usados quando o número de vezes para executar as instruções é conhecido pelo programador.
2) Enquanto Loops
O loop while é usado quando certas instruções precisam ser executadas repetidamente até que uma condição seja atendida. Em loops while, a condição é verificada primeiro, antes da execução das instruções.
3) Faça loops while
Do While Loop é igual ao loop While, com a única diferença de que a condição é verificada após a execução do bloco de instruções. Portanto, no caso do loop do while, as instruções são executadas pelo menos uma vez.
7) O que é um Loop infinito? Como o loop infinito é declarado?
Um loop infinito é executado sem qualquer condição e infinitamente. Um loop infinito pode ser quebrado definindo qualquer lógica de quebra no corpo dos blocos de instruções.
O loop infinito é declarado da seguinte forma:
for (;;) { // Statements to execute // Add any loop breaking logic }
8) Qual é a diferença entre as instruções continue e break?
break e continue são duas palavras-chave importantes usadas em Loops. Quando uma palavra-chave break é usada em um loop, o loop é interrompido instantaneamente, enquanto quando a palavra-chave continue é usada, a iteração atual é interrompida e o loop continua com a próxima iteração.
No exemplo abaixo, o Loop é interrompido quando o contador chega a 4.
for (counter = 0; counter & lt; 10; counter++) system.out.println(counter); if (counter == 4) { break; } }
No exemplo abaixo, quando o contador atinge 4, o loop salta para a próxima iteração e quaisquer instruções após a palavra-chave continue são ignoradas na iteração atual.
for (counter = 0; counter < 10; counter++) system.out.println(counter); if (counter == 4) { continue; } system.out.println("This will not get printed when counter is 4"); }
9) Qual é a diferença entre variáveis double e float em Java?
Em java, float ocupa 4 bytes de memória enquanto Double ocupa 8 bytes na memória. Float é um número decimal de ponto flutuante de precisão única enquanto Double é um número decimal de precisão dupla.
10) Qual é a palavra-chave final em Java? Dê um exemplo.
Em java, uma constante é declarada usando a palavra-chave Final. O valor pode ser atribuído apenas uma vez e após a atribuição, o valor de uma constante não pode ser alterado.
No exemplo abaixo, uma constante com o nome const_val é declarada e recebe um valor:
Final Privado int const_val=100
Quando um método é declarado como final, NÃO pode ser substituído pelas subclasses. Este método é mais rápido que qualquer outro método, pois são resolvidos no prazo obedecido.
Quando uma classe é declarada como final, ela não pode ser subclassificada. Exemplo de String, Integer e outras classes wrapper.
11) O que é operador ternário? Dê um exemplo.
Operador ternário, também chamado de operador condicional, é usado para decidir qual valor atribuir a uma variável com base em uma avaliação de valor booleano. É denotado como ?
No exemplo abaixo, se a classificação for 1, o status receberá o valor “Concluído”, caso contrário, “Pendente”.
public class conditionTest { public static void main(String args[]) { String status; int rank = 3; status = (rank == 1) ? "Done" : "Pending"; System.out.println(status); } }
12) Como você pode gerar números aleatórios em Java?
- Usando Math.random() você pode gerar números aleatórios no intervalo maior ou igual a 0.1 e menor que 1.0
- Usando a classe Random no pacote java.util
13) Qual é o switch case padrão? Dê exemplo.
Em um artigo do instrução switch, o caso padrão é executado quando nenhuma outra condição de chave corresponde. O caso padrão é um caso opcional. Ele pode ser declarado apenas depois que todos os outros casos de switch forem codificados.
No exemplo abaixo, quando a pontuação não é 1 ou 2, o caso padrão é usado.
public class SwitchExample { public static void main(String args[]) { int score = 4; // Declare the score variable inside the main method switch (score) { case 1: System.out.println("Score is 1"); break; case 2: System.out.println("Score is 2"); break; default: System.out.println("Default Case"); } } }
14) Qual é a classe base Java do qual todas as classes são derivadas?
java.lang.object
15) O método main() pode ser usado Java pode retornar algum dado?
Em java, o método main() não pode retornar nenhum dado e, portanto, é sempre declarado com um tipo de retorno void.
16) O que são Java Pacotes? Qual é o significado dos pacotes?
In Java, pacote é uma coleção de classes e interfaces que são agrupadas à medida que são relacionadas entre si. O uso de pacotes ajuda os desenvolvedores a modularizar o código e agrupá-lo para reutilização adequada. Depois que o código for empacotado em Pacotes, ele poderá ser importado em outras classes e usado.
17) Podemos declarar uma classe como Abstrata sem ter nenhum método abstrato?
Sim, podemos criar uma classe abstrata usando a palavra-chave abstrata antes do nome da classe, mesmo que ela não tenha nenhum método abstrato. No entanto, se uma classe tiver pelo menos um método abstrato, ela deve ser declarada como abstrata, caso contrário ocorrerá um erro.
18) Qual é a diferença entre uma classe abstrata e uma interface em Java?
A principal diferença entre uma classe abstrata e uma interface é que uma interface só pode possuir declaração de métodos estáticos públicos sem implementação concreta, enquanto uma classe abstrata pode ter membros com qualquer especificador de acesso (público, privado, etc.) com ou sem implementação concreta.
Outra diferença importante no uso de classes e interfaces abstratas é que uma classe que implementa uma interface deve implementar todos os métodos da interface, enquanto uma classe que herda de uma classe abstrata não requer implementação de todos os métodos de sua superclasse.
Uma classe pode implementar múltiplas interfaces, mas pode estender apenas uma classe abstrata.
19) Quais são as implicações de desempenho das Interfaces sobre classes abstratas?
As interfaces têm desempenho mais lento em comparação com classes abstratas, pois são necessárias indireções extras para interfaces. Outro fator importante que os desenvolvedores devem levar em consideração é que qualquer classe pode estender apenas uma classe abstrata, enquanto uma classe pode implementar muitas interfaces.
O uso de interfaces também impõe uma carga extra aos desenvolvedores, pois sempre que uma interface é implementada em uma classe; o desenvolvedor é forçado a implementar todo e qualquer método de interface.
20) A importação de um pacote também importa seus subpacotes em Java?
Em Java, quando um pacote é importado, seus subpacotes não são importados e o desenvolvedor precisa importá-los separadamente, se necessário.
Por exemplo, se um desenvolvedor importar um pacote university.*, todas as aulas do pacote chamado university serão carregadas, mas nenhuma aula do subpacote será carregada. Para carregar as classes de seu subpacote (digamos, departamento), o desenvolvedor deve importá-lo explicitamente da seguinte forma:
Importar universidade.departamento.*
21) Podemos declarar o método principal da nossa classe como privado?
Em java, o método principal deve ser público estático para executar qualquer aplicativo corretamente. Se o método principal for declarado como privado, o desenvolvedor não receberá nenhum erro de compilação, porém, ele não será executado e causará um erro de tempo de execução.
22) Como podemos passar argumentos para uma função por referência em vez de passar por valor?
Em java, podemos passar argumentos para uma função apenas por valor e não por referência.
23) Como um objeto é serializado em java?
Em java, para converter um objeto em fluxo de bytes por serialização, uma interface com o nome Serializable é implementada pela classe. Todos os objetos de uma classe que implementa interface serializável são serializados e seu estado é salvo no fluxo de bytes.
24) Quando devemos usar serialização?
A serialização é usada quando os dados precisam ser transmitidos pela rede. Usando a serialização, o estado do objeto é salvo e convertido em fluxo de bytes. O fluxo de bytes é transferido pela rede e o objeto é recriado no destino.
25) É obrigatório que um Bloco Try seja seguido por um Bloco Catch em Java para tratamento de exceções?
O bloco Try precisa ser seguido pelo bloco Catch ou pelo bloco Finalmente ou ambos. Qualquer exceção lançada do bloco try precisa ser capturada no bloco catch ou qualquer tarefa específica a ser executada antes da interrupção do código ser colocada no bloco Finalmente.
Java Perguntas e respostas da entrevista para experientes
26) Existe alguma maneira de pular o bloco de exceção Finalmente, mesmo que ocorra alguma exceção no bloco de exceção?
Se uma exceção for gerada no bloco Try, o controle passa para o bloco catch, se existir, caso contrário, para finalmente bloquear. O bloco Finalmente é sempre executado quando ocorre uma exceção e a única maneira de evitar a execução de qualquer instrução no bloco Finalmente é abortar o código à força, escrevendo a seguinte linha de código no final do bloco try:
System.exit(0);
27) Quando o construtor de uma classe é invocado?
O construtor de uma classe é invocado toda vez que um objeto é criado com uma nova palavra-chave.
Por exemplo, na classe a seguir, dois objetos são criados usando a palavra-chave new e, portanto, o construtor é invocado duas vezes.
public class const_example { const_example() { system.out.println("Inside constructor"); } public static void main(String args[]) { const_example c1 = new const_example(); const_example c2 = new const_example(); } }
28) Uma classe pode ter vários construtores?
Sim, uma classe pode ter vários construtores com parâmetros diferentes. Qual construtor será usado para a criação de objetos depende dos argumentos passados durante a criação dos objetos.
29) Podemos substituir métodos estáticos de uma classe?
Não podemos substituir métodos estáticos. Os métodos estáticos pertencem a uma classe e não a objetos individuais e são resolvidos no momento da compilação (não no tempo de execução). Mesmo se tentarmos substituir o método estático, não obteremos um erro de compilação, nem o impacto da substituição ao executar o código.
30) No exemplo abaixo, qual será o resultado?
public class superclass { public void displayResult() { system.out.println("Printing from superclass"); } } public class subclass extends superclass { public void displayResult() { system.out.println("Displaying from subClass"); super.displayResult(); } public static void main(String args[]) { subclass obj = new subclass(); obj.displayResult(); } }
Ans: A saída será:
Exibindo da subclasse
Imprimindo da superclasse
31) String é um tipo de dados em java?
String não é um tipo de dado primitivo em Java. Quando uma string é criada em Java, ela é na verdade um objeto de JavaClasse .Lang.String que é criada. Após a criação deste objeto string, todos os métodos integrados da classe String podem ser usados no objeto string.
32) No exemplo abaixo, quantos objetos String são criados?
String s1="I am Java Expert"; String s2="I am C Expert"; String s3="I am Java Expert";
No exemplo acima, dois objetos de JavaA classe .Lang.String é criada. s1 e s3 são referências ao mesmo objeto.
33) Por que as Strings entram Java são chamados de imutáveis?
Em java, os objetos string são chamados de imutáveis, pois uma vez que o valor é atribuído a uma string, ele não pode ser alterado e, se alterado, um novo objeto é criado.
No exemplo abaixo, a referência str refere-se a um objeto string com valor “Valor um”.
String str="Value One";
Quando um novo valor é atribuído a ele, um novo objeto String é criado e a referência é movida para o novo objeto.
str="New Value";
34) Qual é a diferença entre um array e um vetor?
Uma matriz agrupa dados do mesmo tipo primitivo e é de natureza estática, enquanto os vetores são de natureza dinâmica e podem conter dados de diferentes tipos de dados.
35) O que é multithreading?
Multi threading é um conceito de programação para executar várias tarefas de maneira simultânea em um único programa. Threads compartilham a mesma pilha de processos e são executados em paralelo. Ajuda na melhoria do desempenho de qualquer programa.
36) Por que a Interface Executável é usada em Java?
A interface executável é usada em Java para implementar aplicativos multithread. JavaA interface .Lang.Runnable é implementada por uma classe para suportar multi threading.
37) Quais são as duas maneiras de implementar multi-threading em Java?
Aplicações multithread podem ser desenvolvidas em Java usando qualquer uma das duas metodologias a seguir:
1) Usando Java.Lang.Interface executável. As classes implementam essa interface para permitir multithreading. Existe um método Run() nesta interface que está implementado.
2) Escrevendo uma classe que estende JavaClasse .Lang.Thread.
38) Quando são necessárias muitas alterações nos dados, qual delas deve ser preferida? Corda ou CordaBuffer?
Desde StringBuffers são de natureza dinâmica e podemos alterar os valores de StringBuffer objetos diferentes de String, que é imutável, é sempre uma boa opção usar StringBuffer quando os dados estão sendo alterados demais. Se usarmos String nesse caso, para cada alteração de dados, um novo objeto String será criado, o que será uma sobrecarga extra.
39) Qual o propósito de usar Break em cada caso de instrução Switch?
Break é usado após cada caso (exceto o último) em um switch para que o código seja quebrado após o caso válido e não flua também nos casos anteriores.
Se break não for usado após cada caso, todos os casos após o caso válido também serão executados, resultando em resultados errados.
40) Como é feita a coleta de lixo em Java?
Em java, quando um objeto não é mais referenciado, coleta de lixo ocorre e o objeto é destruído automaticamente. Para coleta automática de lixo, Java chama o método System.gc() ou o método Runtime.gc().
41) Como podemos executar qualquer código antes mesmo do método principal?
Se quisermos executar alguma instrução antes mesmo da criação de objetos no momento do carregamento da classe, podemos usar um bloco estático de código na classe. Quaisquer instruções dentro deste bloco estático de código serão executadas uma vez no momento do carregamento da classe, mesmo antes da criação de objetos no método principal.
42) Uma classe pode ser uma superclasse e uma subclasse ao mesmo tempo? Dê exemplo.
Se houver uma hierarquia de herança utilizada, uma classe pode ser uma superclasse para outra classe e uma subclasse para outra ao mesmo tempo.
No exemplo abaixo, a classe continente é uma subclasse da classe mundial e é uma superclasse da classe país.
public class world { .......... } public class continenet extends world { ............ } public class country extends continent { ...................... }
43) Como os objetos de uma classe são criados se nenhum construtor estiver definido na classe?
Mesmo que nenhum construtor explícito seja definido em uma classe java, os objetos são criados com sucesso, pois um construtor padrão é usado implicitamente para a criação de objetos. Este construtor não possui parâmetros.
44) No multithreading, como podemos garantir que um recurso não seja usado por vários threads simultaneamente?
No multithreading, o acesso aos recursos compartilhados entre vários threads pode ser controlado usando o conceito de sincronização. Usando palavra-chave sincronizada, podemos garantir que apenas um thread possa usar o recurso compartilhado por vez e outros possam obter o controle do recurso somente quando ele estiver livre do outro que o utiliza.
45) Podemos chamar o construtor de uma classe mais de uma vez para um objeto?
O construtor é chamado automaticamente quando criamos um objeto usando a nova palavra-chave. Ele é chamado apenas uma vez para um objeto no momento da criação do objeto e, portanto, não podemos invocar o construtor novamente para um objeto após sua criação.
46) Existem duas classes denominadas classA e classB. Ambas as classes estão no mesmo pacote. Um membro privado da classe A pode ser acessado por um objeto da classe B?
Membros privados de uma classe não são acessíveis fora do escopo dessa classe e qualquer outra classe, mesmo no mesmo pacote, não pode acessá-los.
47) Podemos ter dois métodos em uma classe com o mesmo nome?
Podemos definir dois métodos em uma classe com o mesmo nome, mas com número/tipo de parâmetros diferentes. O método a ser invocado dependerá dos parâmetros passados.
Por exemplo, na classe abaixo temos dois métodos de impressão com o mesmo nome, mas parâmetros diferentes. Dependendo dos parâmetros, o apropriado será chamado:
public class methodExample { public void print() { system.out.println("Print method without parameters."); } public void print(String name) { system.out.println("Print method with parameter"); } public static void main(String args[]) { methodExample obj1 = new methodExample(); obj1.print(); obj1.print("xx"); } }
48) Como podemos fazer cópia de um objeto java?
Podemos usar o conceito de clonagem para criar uma cópia de um objeto. Usando clone, criamos cópias com o estado real de um objeto.
Clone() é um método de interface Cloneable e, portanto, a interface Cloneable precisa ser implementada para fazer cópias de objetos.
49) Qual é a vantagem de usar herança?
O principal benefício do uso da herança é a reutilização do código, pois a herança permite que as subclasses reutilizem o código de sua superclasse. O polimorfismo (extensibilidade) é outro grande benefício que permite a introdução de novas funcionalidades sem afetar as classes derivadas existentes.
50) Qual é o especificador de acesso padrão para variáveis e métodos de uma classe?
O especificador de acesso padrão para variáveis e métodos é protegido por pacote, ou seja, variáveis e classes estão disponíveis para qualquer outra classe, mas no mesmo pacote, não fora do pacote.
51) Dê um exemplo de uso de ponteiros em Java classe.
Não há indicações Java. Portanto, não podemos usar o conceito de ponteiros em Java.
52) Como podemos restringir a herança de uma classe para que nenhuma classe possa ser herdada dela?
Se quisermos que uma classe não seja estendida por nenhuma classe, podemos usar a palavra-chave final com o nome da classe.
No exemplo a seguir, a classe Stone é Final e não pode ser estendida
public Final Class Stone { // Class methods and Variables }
53) Qual é o escopo de acesso do especificador de Acesso Protegido?
Quando um método ou variável é declarado com especificador de acesso protegido, ele se torna acessível na mesma classe, em qualquer outra classe do mesmo pacote, bem como em uma subclasse.
Modificar | Aula | Pacote | Subclasse | Mundo |
---|---|---|---|---|
público | Y | Y | Y | Y |
protegido | Y | Y | Y | N |
sem modificador | Y | Y | N | N |
privado | Y | N | N | N |
54) Qual a diferença entre Pilha e Fila?
Stack e Queue são usados como espaço reservado para uma coleção de dados. A principal diferença entre uma pilha e uma fila é que a pilha é baseada no princípio Last in First out (LIFO), enquanto uma fila é baseada no princípio FIFO (First In First Out).
55) Em java, como podemos proibir a serialização de variáveis?
Se quisermos que certas variáveis de uma classe não sejam serializadas, podemos usar a palavra-chave transitório ao declará-los. Por exemplo, a variável trans_var abaixo é uma variável transitória e não pode ser serializada:
public class transientExample { private transient trans_var; // rest of the code }
56) Como podemos usar tipos de dados primitivos como objetos?
Tipos de dados primitivos como int podem ser tratados como objetos pelo uso de suas respectivas classes wrapper. Por exemplo, Integer é uma classe wrapper para o tipo de dados primitivo int. Podemos aplicar métodos diferentes a uma classe wrapper, como qualquer outro objeto.
57) Quais tipos de exceções são capturadas em tempo de compilação?
As exceções verificadas podem ser detectadas no momento da compilação do programa. As exceções verificadas devem ser tratadas usando o bloco try catch no código para compilar o código com êxito.
58) Descreva os diferentes estados de um thread.
Um tópico em Java pode estar em qualquer um dos seguintes estados:
- Pronto: quando um thread é criado, ele está no estado Pronto.
- Em execução: um thread que está sendo executado atualmente está em estado de execução.
- Esperando: um thread aguardando outro thread para liberar determinados recursos está em estado de espera.
- Morto: um thread que morreu após a execução está em estado morto.
59) Podemos usar um construtor padrão de uma classe mesmo se um construtor explícito for definido?
Java fornece um construtor padrão sem argumento se nenhum construtor explícito for definido em um Java aula. Mas se um construtor explícito tiver sido definido, o construtor padrão não poderá ser invocado e o desenvolvedor poderá usar apenas os construtores definidos na classe.
60) Podemos substituir um método usando o mesmo nome e argumentos de método, mas tipos de retorno diferentes?
A condição básica para a substituição do método é que o nome do método, os argumentos e o tipo de retorno devem ser exatamente iguais aos do método que está sendo substituído. Portanto, usar um tipo de retorno diferente não substitui um método.
61) Qual será a saída do seguinte trecho de código?
public class operatorExample { public static void main(String args[]) { int x = 4; system.out.println(x++); } }
Neste caso é usado o operador postfix ++ que primeiro retorna o valor e depois aumenta. Portanto, sua saída será 4.
61) Uma pessoa diz que compilou uma classe java com sucesso, mesmo sem ter um método principal nela? É possível?
método principal é um ponto de entrada de Java classe e é necessária para a execução do programa; uma classe é compilada com sucesso mesmo que não tenha um método principal. Porém, não pode ser executado.
62) Podemos chamar um método não estático de dentro de um método estático?
Os métodos não estáticos pertencem a objetos de uma classe e têm escopo no nível do objeto e, para chamar os métodos não estáticos de um bloco estático (como de um método principal estático), um objeto da classe precisa ser criado primeiro. Então, usando referência de objeto, esses métodos podem ser invocados.
63) Quais são as duas variáveis de ambiente que devem ser definidas para executar qualquer Java programas?
Java programas podem ser executados em uma máquina somente depois que as duas variáveis de ambiente a seguir forem definidas corretamente:
- Variável PATH
- Variável CLASSPATH
64) Variáveis podem ser usadas em Java sem inicialização?
In Java, se uma variável for usada em um código sem inicialização prévia por um valor válido, o programa não compila e gera um erro, pois nenhum valor padrão é atribuído às variáveis em Java.
65) Uma aula pode Java ser herdado de mais de uma classe?
In Java, uma classe pode ser derivada de apenas uma classe e não de várias classes. Heranças múltiplas não são suportadas por Java.
66) Um construtor pode ter um nome diferente do nome de uma classe em Java?
Construtor em Java deve ter o mesmo nome do nome da classe e se o nome for diferente, não atua como construtor e o compilador pensa nele como um método normal.
67) Qual será o resultado de Round(3.7) e Ceil(3.7)?
Round(3.7) retorna 4 e Ceil(3.7) retorna 4.
68) Podemos usar goto em Java ir para uma linha específica?
In Java, não há palavra-chave goto e o Java não suporta esse recurso de ir para uma linha rotulada específica.
69) Um thread morto pode ser reiniciado?
Em Java, um thread que está em estado morto não pode ser iniciado novamente. Não há como reiniciar um thread morto.
70) A seguinte declaração de classe está correta?
public abstract final class testClass { // Class methods and variables }
Resposta: A declaração de classe acima está incorreta porque uma classe abstrata não pode ser declarada como Final.
71) O JDK é necessário em cada máquina para executar um Java programa?
JDK é um kit de desenvolvimento de Java e é necessário apenas para desenvolvimento e para executar um Java programa em uma máquina, o JDK não é necessário. Somente JRE é necessário.
72) Qual a diferença entre a comparação feita pelo método equals e pelo operador ==?
In JavaO método equals() é usado para comparar o conteúdo de dois objetos string e retorna true se os dois tiverem o mesmo valor, enquanto o operador == compara as referências de dois objetos string.
No exemplo a seguir, equals() retorna verdadeiro porque os dois objetos string têm os mesmos valores. No entanto, o operador == retorna falso, pois ambos os objetos string estão fazendo referência a objetos diferentes:
public class equalsTest { public static void main(String args[]) { String str1 = new String("Hello World"); String str2 = new String("Hello World"); if (str1.equals(str2)) { // this condition is true System.out.println("str1 and str2 are equal in terms of values"); } if (str1 == str2) { //This condition is true System.out.println("Both strings are referencing same object"); } else { // This condition is NOT true System.out.println("Both strings are referencing different objects"); } } }
73) É possível definir um método em Java class, mas fornece sua implementação no código de outra linguagem como C?
Sim, podemos fazer isso usando métodos nativos. No caso de desenvolvimento baseado em métodos nativos, definimos métodos estáticos públicos em nosso Java classe sem sua implementação e então a implementação é feita em outra linguagem como C separadamente.
74) Como os destruidores são definidos em Java?
In Java, não há destruidores definidos na classe, pois não há necessidade de fazê-lo. Java possui seu próprio mecanismo de coleta de lixo que faz o trabalho automaticamente, destruindo os objetos quando não são mais referenciados.
Java Perguntas e respostas da entrevista para mais de 5 anos de experiência
75) Uma variável pode ser local e estática ao mesmo tempo?
Não, uma variável não pode ser estática e local ao mesmo tempo. Definir uma variável local como estática causa erro de compilação.
76) Podemos ter métodos estáticos em uma Interface?
Os métodos estáticos não podem ser substituídos em nenhuma classe, enquanto quaisquer métodos em uma interface são, por padrão, abstratos e devem ser implementados nas classes que estão implementando a interface. Portanto, não faz sentido ter métodos estáticos em uma interface em Java.
77) Em uma classe que implementa uma interface, podemos alterar o valor de qualquer variável definida na interface?
Não, não podemos alterar o valor de nenhuma variável de uma interface na classe de implementação, pois todas as variáveis definidas na interface são por padrão públicas, estáticas e variáveis finais e finais são como constantes que não podem ser alteradas posteriormente.
78) É correto dizer que devido ao recurso de coleta de lixo no Java, um programa Java nunca fica sem memória?
Embora a coleta automática de lixo seja fornecida por Java, isso não garante que um Java o programa não ficará sem memória, pois existe a possibilidade de que a criação de Java objetos está sendo feito em um ritmo mais rápido em comparação com a coleta de lixo, resultando no preenchimento de todos os recursos de memória disponíveis.
Portanto, a coleta de lixo ajuda a reduzir as chances de um programa ficar sem memória, mas não garante isso.
79) Podemos ter outro tipo de retorno além de void para o método principal?
Não, Java O método principal da classe pode ter apenas o tipo de retorno void para que o programa seja executado com sucesso.
No entanto, se for absolutamente necessário retornar um valor na conclusão do método principal, você pode usar System.exit(int status)
80) Quero alcançar e usar novamente um objeto depois de ele ter sido coletado como lixo. Como é possível?
Depois que um objeto é destruído pelo coletor de lixo, ele não existe mais no heap e não pode ser acessado novamente. Não há como referenciá-lo novamente.
81) em Java programação de threads, qual método é uma implementação obrigatória para todos os threads?
Run() é um método de interface Runnable que deve ser implementado por todos os threads.
82) Quero controlar as conexões com o banco de dados em meu programa e quero que apenas um thread seja capaz de fazer a conexão com o banco de dados por vez. Como posso implementar essa lógica?
Resposta: Isso pode ser implementado usando o conceito de sincronização. O código relacionado ao banco de dados pode ser colocado em um método que hs sincronizado palavra-chave para que apenas um thread possa acessá-lo por vez.
83) Como uma exceção pode ser lançada manualmente por um programador?
Para lançar uma exceção em um bloco de código manualmente, jogar palavra-chave é usada. Então esta exceção é capturada e tratada no bloco catch.
public void topMethod() { try { excMethod(); } catch (ManualException e) {} } public void excMethod { String name = null; if (name == null) { throw (new ManualException("Exception thrown manually "); } }
84) Quero que minha classe seja desenvolvida de tal forma que nenhuma outra classe (mesmo classe derivada) possa criar seus objetos. Como posso fazer isso?
Se declararmos o construtor de uma classe como privado, ele não será acessível por nenhuma outra classe e, portanto, nenhuma outra classe será capaz de instanciá-lo e a formação de seu objeto será limitada apenas a si mesmo.
85) Como os objetos são armazenados Java?
Em Java, cada objeto, quando criado, obtém um espaço de memória de um heap. Quando um objeto é destruído por um coletor de lixo, o espaço alocado a ele no heap é realocado para o heap e fica disponível para quaisquer novos objetos.
86) Como podemos encontrar o tamanho real de um objeto na pilha?
Em Java, não há como descobrir o tamanho exato de um objeto na pilha.
87) Qual das seguintes classes terá mais memória alocada?
Classe A: Três métodos, quatro variáveis, nenhum objeto
Classe B: Cinco métodos, três variáveis, nenhum objeto
A memória não é alocada antes da criação dos objetos. Como para ambas as classes não há objetos criados, nenhuma memória é alocada no heap para nenhuma classe.
88) O que acontece se uma exceção não for tratada em um programa?
Se uma exceção não for tratada em um programa usando blocos try catch, o programa será abortado e nenhuma instrução será executada após a instrução que causou o lançamento da exceção.
89) Tenho vários construtores definidos em uma classe. É possível chamar um construtor do corpo de outro construtor?
Se uma classe tiver vários construtores, é possível chamar um construtor do corpo de outro usando esta().
90) O que significa aula anônima?
Uma classe anônima é uma classe definida sem nenhum nome em uma única linha de código usando a nova palavra-chave.
Por exemplo, no código abaixo definimos uma classe anônima em uma linha de código:
public java.util.Enumeration testMethod() { return new java.util.Enumeration() { @Override public boolean hasMoreElements() { // TODO Auto-generated method stub return false; } @Override public Object nextElement() { // TODO Auto-generated method stub return null; } }
91) Existe uma maneira de aumentar o tamanho de um array após sua declaração?
Os arrays são estáticos e, uma vez especificado seu tamanho, não podemos alterá-lo. Se quisermos usar coleções onde possamos exigir uma mudança de tamanho (não de itens), devemos preferir vetor em vez de array.
92) Se um aplicativo contém múltiplas classes, é correto ter um método principal em mais de uma classe?
Se houver um método principal em mais de uma classe em um aplicativo Java, isso não causará nenhum problema, pois o ponto de entrada para qualquer aplicativo será uma classe específica e o código começará apenas a partir do método principal dessa classe específica.
93) Quero persistir dados de objetos para uso posterior. Qual é a melhor abordagem para fazer isso?
A melhor maneira de persistir os dados para uso futuro é usar o conceito de serialização.
94) O que é uma aula local em Java?
In Java, se definirmos uma nova classe dentro de um bloco específico, ela será chamada de classe local. Tal classe tem escopo local e não pode ser usada fora do bloco onde está definida.
95) Corda e CordaBuffer ambos representam objetos String. Podemos comparar String e StringBuffer in Java?
Embora String e StringBuffer ambos representam objetos String, não podemos compará-los entre si e se tentarmos compará-los, obteremos um erro.
96) Qual API é fornecida por Java para operações em conjunto de objetos?
Java fornece uma API de coleção que fornece muitos métodos úteis que podem ser aplicados em um conjunto de objetos. Algumas das classes importantes fornecidas pela API Collection incluem ArrayList, HashMap, TreeSet e TreeMap.
97) Podemos converter qualquer outro tipo para Boolean Type com conversão de tipo?
Não, não podemos converter nenhum outro tipo primitivo para o tipo de dados booleano, nem podemos converter o tipo de dados booleano para qualquer outro tipo de dados primitivo.
98) Podemos usar diferentes tipos de retorno para métodos quando substituídos?
O requisito básico de substituição de método em Java é que o método substituído deve ter o mesmo nome e parâmetros. Mas um método pode ser substituído por um tipo de retorno diferente, desde que o novo tipo de retorno estenda o original.
Por exemplo, o método está retornando um tipo de referência.
Class B extends A { A method(int x) { //original method } B method(int x) { //overridden method } }
99) Qual é a classe base de todas as classes de exceção?
In Java, Java.lang.Throwable
é a superclasse de todas as classes de exceção e todas as classes de exceção são derivadas desta classe base.
100) Qual a ordem de chamada dos construtores na herança?
No caso de herança, quando um novo objeto de uma classe derivada é criado, primeiro o construtor da superclasse é invocado e depois o construtor da classe derivada é invocado.
Prepare-se para sua entrevista de emprego!!! Ir através Java Tutorial para estar melhor preparado.
Este detalhado Java O Mock Test Quiz irá ajudá-lo a tirar as dúvidas sobre Java perguntas da entrevista e também o ajudará a resolver a entrevista.
Este Java e Java 8 perguntas da entrevista também ajudará na sua viva(oral)