JavaRush /Blogue Java /Random-PT /Pausa para café #145. 90 perguntas e respostas frequentes...

Pausa para café #145. 90 perguntas e respostas frequentes da entrevista sobre Java

Publicado no grupo Random-PT
Fonte: Usemynotes Esta publicação contém uma lista de perguntas que são frequentemente encontradas em entrevistas com desenvolvedores Java de nível básico e intermediário. Pausa para café #145.  90 perguntas e respostas frequentes da entrevista sobre Java - 1

1. O que torna Java uma linguagem independente de plataforma?

Java é chamada de linguagem independente de plataforma porque o byte code gerado pelo JDK (Java Development Kit) pode ser executado pela JVM (Java Virtual Machine) em qualquer plataforma, independente do sistema operacional.

2. Por que Java não é uma linguagem totalmente orientada a objetos?

Java não é uma linguagem totalmente orientada a objetos porque usa oito tipos de dados primitivos que não são objetos: boolean , byte , char , int , float , double , long e short .

3. Por que o método main() se torna estático em Java?

O método main() é declarado estático para que possa ser chamado diretamente da JVM sem criar um objeto ou instância da classe na qual é declarado.

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

Em Java, todo tipo de dados primitivo, como int e float , possui uma classe correspondente conhecida como classes wrapper. Eles também são chamados de wrappers porque agrupam ou convertem um tipo de dados primitivo em objetos.

5. O que é um construtor em Java?

Construtores em Java são métodos especiais chamados automaticamente quando um objeto ou instância é criado. Os nomes do construtor e da classe devem corresponder.

6. Quais são as diferenças entre arrays e ArrayList em Java?

Matrizes ListaArray
É uma estrutura de dados estática, o que significa que seu tamanho é fixo e não pode ser alterado. É um array de comprimento variável ou tamanho dinâmico em uma estrutura de coleção, o que significa que seu tamanho pode ser alterado conforme a necessidade.
Eles podem armazenar objetos e tipos primitivos. Ele só pode armazenar ou conter objetos, mas não tipos primitivos.
Podemos acessar um elemento especificando seu índice entre colchetes []. Podemos acessar um elemento especificando seu número de índice dentro do método get() .

7. Por que Java não usa ponteiros?

Java não usa ponteiros porque eles não são seguros e também adicionam complexidade ao programa. Além disso, Java evita ponteiros para evitar fornecer acesso direto à memória ao usuário.

8. Que tipos de modificadores de acesso existem em Java?

Em Java, modificadores de acesso são palavras-chave usadas para indicar acesso a uma classe e métodos fora da classe ou em outra classe. Existem quatro tipos diferentes de modificadores de acesso em Java:
  • Padrão
  • Público
  • Privado
  • Protegido

9. O que é JIT em Java?

JIT é um acrônimo para Just-In-Time Compiler em Java. Em tempo de execução, ele converte o bytecode em código de máquina nativo. O compilador JIT ajuda a melhorar o desempenho de programas Java.

10. Qual é a palavra-chave final em Java?

A palavra-chave final em Java é usada para representar constantes. Pode ser usado com variáveis, classes e métodos.
  • Se a palavra-chave final for usada com variáveis, você não poderá alterar seu valor.
  • Se a palavra-chave final for usada com métodos, você não poderá substituir esse método.
  • Se você declarar uma classe final , essa classe não poderá ser estendida ou herdada por uma subclasse.

11. Quais são os conceitos básicos de OOP ou Programação Orientada a Objetos em Java?

A programação orientada a objetos ou OOP em Java usa 4 conceitos principais:
  • Encapsulamento.
  • Abstração.
  • Herança.
  • Polimorfismo.

12. O que é uma classe singleton em Java e como transformar uma classe em singleton?

Em Java, uma classe singleton é uma classe que possui apenas uma instância ou objeto. Ao criar um construtor privado, podemos tornar a classe um singleton.

13. Qual é a diferença entre variáveis ​​locais e variáveis ​​de instância em Java?

Uma variável local é definida dentro de um bloco ou método. O escopo de uma variável local está exclusivamente dentro do bloco. Uma variável de instância de classe é uma variável definida dentro da classe, mas fora do método. Ele é acessado criando um objeto da classe e é encerrado quando o objeto é excluído.

14. O que é OOP ou Programação Orientada a Objetos?

A programação orientada a objetos ou OOP é um paradigma de programação usado para desenvolver programas ou aplicativos usando o conceito de objetos.

15. O que torna as strings Java imutáveis?

Strings em Java são imutáveis, o que significa que uma vez que um objeto string é criado, ele não pode ser atualizado, mas um novo objeto string é criado. Isso ocorre porque os objetos de string são armazenados em cache no pool de strings.

16. Descreva as diferenças entre interface e classes abstratas em Java

Interface Classe abstrata
Só pode ter métodos abstratos. Permite métodos abstratos e não abstratos.
A subclasse implementa a interface usando a palavra-chave Implements . Uma subclasse ou classe derivada herda a abstração usando palavras-chave para estender a implementação (estende).
Uma interface só pode ter métodos estáticos públicos sem implementação. Pode ter métodos sem implementação ou com implementação.
Todos os métodos de uma interface devem ser implementados pela classe que a implementa. Uma classe que herda de uma classe abstrata não precisa implementar todos os métodos de sua superclasse.

17. O que você entende por polimorfismo e quais são seus tipos?

Polimorfismo em Java é a capacidade de um objeto assumir mais de uma forma. Também pode ser definido como uma tarefa ou atividade única que pode ser realizada de diferentes maneiras. O polimorfismo é dividido em dois tipos:
  1. Polimorfismo em tempo de compilação.
  2. Polimorfismo de tempo de execução.

18. Como Java alcança polimorfismo em tempo de compilação e tempo de execução?

Em Java, o polimorfismo em tempo de compilação é alcançado através da sobrecarga de métodos, enquanto o polimorfismo em tempo de execução é alcançado através da substituição de métodos.

19. O que você quer dizer com abstração e como isso é alcançado em Java?

Abstração é o ato de representar informações importantes sem mostrar detalhes internos ou de implementação. Em Java, isso é conseguido através do uso de classes e interfaces abstratas.

20. O que são interfaces em Java?

Uma interface em Java é um conjunto de métodos abstratos apenas com declarações de funções, mas sem implementação. Não podemos criar objetos ou instâncias de uma interface. Uma interface não pode ter construtores. Uma classe pode implementar várias interfaces usando a palavra-chave Implements em Java.

21. Que tipos de herança existem em Java?

Em Java, usamos palavras-chave extends para herdar os atributos e métodos de uma superclasse ou classe base. Existem cinco tipos de herança:
  1. Herança única.
  2. Herança multinível.
  3. Herança Hierárquica.
  4. Herança múltipla por meio de interface.
  5. Herança Híbrida.

22. Por que Java não oferece suporte a herança múltipla?

Java não oferece suporte a herança múltipla para evitar ambiguidade. Por exemplo, suponha que existam duas superclasses A e B e uma subclasse C que herda A e B. Ambas as classes A e B têm um método show() . Se chamarmos o método show() criando um objeto da classe C, o compilador gerará um erro porque não está claro qual classe do método show() deve ser executada.

23. Qual é a diferença entre sobrecarga de método e substituição de método?

Sobrecarga de método Substituição de método
Polimorfismo em tempo de compilação. Polimorfismo de tempo de execução.
Dois ou mais métodos na mesma classe com a mesma função ou nome de método, mas com assinaturas diferentes. Dois ou mais métodos que possuem a mesma função ou nome de método e assinatura em classes diferentes.

24. É possível substituir um método estático ou privado em Java?

Um método privado não é acessível fora da classe, portanto não será substituído por uma subclasse. Portanto, não pode ser substituído. Da mesma forma, um método estático não pode ser substituído porque se criarmos métodos estáticos com o mesmo nome de método e assinatura na classe base e na classe derivada, a classe derivada ocultará os métodos na classe base. Isso é conhecido como ocultação de método.

25. O que é sobrecarga de construtor em Java?

Em Java, um construtor é considerado sobrecarregado se uma classe tiver mais de um construtor, mas com uma lista de parâmetros diferente.

26. Podemos definir uma classe Abstract mesmo que ela não possua métodos abstratos?

Sim, podemos criar uma classe abstrata mesmo que ela não possua um método abstrato. Porém, se uma classe contém pelo menos um método abstrato, ela deve ser definida como abstrata, caso contrário ocorrerá um erro.

27. Qual é a utilidade de variáveis ​​e métodos estáticos?

Usamos membros estáticos (métodos e variáveis) quando queremos usar um método ou variável comum para todos os objetos de uma classe em vez de criar múltiplas cópias de cada objeto. Por exemplo, na classe Employee, o nome da empresa pode se tornar estático porque todos os objetos terão o mesmo nome da empresa.

28. Quantos tipos diferentes de construtores existem em Java?

Existem 2 tipos de construtores em Java:
  1. O construtor padrão não aceita nenhum parâmetro.
  2. Construtor parametrizado - aceita pelo menos um parâmetro.

29. Java usa um construtor de cópia?

Não, Java não possui um construtor de cópia como C++.

30. Indique as diferenças entre construtor e métodos em Java

Construtor Método
É obrigatório que o nome do construtor e o nome da classe correspondam. O nome do método pode ou não ser igual ao nome da classe.
Não pode ter um tipo de retorno. Obrigatório ter um tipo de retorno.
Os construtores não podem ser estáticos. O método pode ou não ser estático.
É invocado ou chamado automaticamente quando um objeto ou instância de uma classe é criado. É invocado ou aplicado usando o nome do objeto junto com um ponto final (.).
É usado para inicializar o estado de um objeto. É usado para definir o comportamento de um objeto.

31. É possível executar um programa sem usar o método main()?

Não, um programa não pode ser executado sem o método main() em Java porque a execução do programa começa a partir do método main() .

32. O que significa esta palavra-chave em Java?

A palavra-chave this em Java é uma variável de referência usada para se referir ao objeto atual que chama um método ou variável.

33. É possível usar a palavra-chave this em Java para se referir a membros estáticos?

Sim, como é uma variável de referência para o objeto atual, podemos usar a palavra-chave this para nos referirmos a membros estáticos.

34. Podemos tornar o método main() em Java privado em vez de público?

Podemos tornar o método main() privado, mas obteremos um erro de tempo de execução e, portanto, o programa não será executado.

35. O que significa a palavra-chave super em Java?

Em Java, a palavra-chave super é uma variável de referência usada para se referir a um objeto da classe pai imediata.

36. Indique as diferenças entre um vetor e uma matriz.

Vetor Variedade
Esta é uma matriz de tamanho dinâmico. É uma estrutura de dados de tamanho fixo.
O vetor está sincronizado. A matriz não está sincronizada.
É mais lento comparado a um array. É mais rápido comparado ao vetor.
Ele só pode conter ou armazenar objetos Java. É usado para armazenar tipos primitivos e objetos Java.
Podemos usar o método size() para descobrir o comprimento do vetor. Podemos usar a propriedade length para descobrir o comprimento do array.

37. O que é multithreading em Java?

Multithreading é o processo de execução de várias tarefas simultaneamente em um único programa. Isso é feito para atingir a carga máxima do processador.

38. Quais são as formas de implementar multithreading em Java?

Multithreading em Java pode ser implementado de duas maneiras:
  1. Implementando a interface Runnable em java.lang.Runnable .
  2. Estendendo a classe Thread em java.lang.Thread .

39. Indique algumas diferenças entre as palavras-chave super e this em Java.

Super Esse
Usado para se referir a objetos da classe pai. Usado para se referir ao objeto de classe atual.
Usado para acessar métodos de uma classe pai ou base. Usado para acessar um método da classe atual.
Chama o construtor padrão da classe base. Chama o construtor padrão da classe atual.

40. Quais são as diferenças entre uma subclasse e uma classe interna?

Subclasse Classe interna
Esta é uma classe que herda as propriedades e métodos de uma classe base ou pai. Esta é uma classe aninhada dentro de outra classe.
Ele pode acessar todos os membros públicos e protegidos de uma superclasse ou classe base. Tem acesso a todos os membros da classe externa.

41. ​​O que é um carregador de classes em Java?

O Java Class Loader é um componente do Java Runtime Environment ou JRE usado para carregar classes Java na Java Virtual Machine (JVM) em tempo de execução.

42. É necessário que um bloco Try seja seguido pelo tratamento de exceções Java em um bloco Catch?

Sim, é obrigatório usar um bloco catch porque qualquer exceção lançada por um bloco try deve ser capturada no bloco catch .

43. Cite os tipos de exceções em Java

As exceções em Java são de dois tipos:
  1. Exceção não verificada
  2. Exceção verificada

44. Quais são os estados do thread?

Existem 4 estados de thread em Java:
  1. Novo fluxo.
  2. Executável.
  3. Não executável.
  4. Morto ou Terminado.

45. O que é NullPointerException?

Quando um usuário tenta acessar ou alterar os valores de um objeto nulo, uma NullPointerException é lançada .

46. ​​​​Que tipos de palavras-chave são usadas no tratamento de exceções Java?

  1. tentar

  2. pegar

  3. finalmente

  4. lançar

  5. lança

47. É possível sobrecarregar o método main() em Java?

Sim, o método main() pode estar sobrecarregado, mas a JVM ou Java Virtual Machine chama apenas o método main() original .

48. É possível substituir o método main() em Java?

Não, porque o método main() é um método estático e os métodos estáticos não podem ser substituídos.

49. Quais são as diferenças entre equals() e == ?

Em Java, equals() é um método usado para comparar os valores de dois objetos ou variáveis, enquanto == é um operador de comparação usado para comparar os endereços ou locais de memória de mais dois objetos ou variáveis.

50. Um construtor de classe pode retornar qualquer valor?

Não, o construtor não possui um tipo de retorno, portanto não pode retornar nenhum valor.

51. Defina agregação

Agregação é uma forma de associação definida como um relacionamento tem-um entre duas classes. Isso é feito para reutilização de código. Este é um relacionamento unilateral ou unidirecional entre duas classes.

52. O que é uma associação?

Uma associação define um relacionamento entre duas classes usando objetos. O relacionamento ou associação pode ser um para um, um para muitos, muitos para muitos ou muitos para um. Agregação e composição são duas formas de associação.

53. O que é composição?

Composição é uma forma de associação em que duas classes dependem uma da outra.

54. Qual é a diferença entre vinculação dinâmica e estática?

Com a vinculação dinâmica, a decisão de vincular um método a um objeto é tomada em tempo de execução. Ligação tardia é outro nome para ligação dinâmica. Com a vinculação estática, a decisão de vincular um método a um objeto é tomada em tempo de compilação. A vinculação estática é outro nome para vinculação antecipada.

55. Indique a diferença entre encapsulamento e abstração

No encapsulamento, dados e métodos são empacotados ou agrupados em uma única unidade conhecida como classe. A abstração exibe apenas informações importantes e oculta detalhes internos ou de implementação.

56. O que é uma classe abstrata em Java?

Uma classe abstrata é uma classe que não pode ser instanciada, mas podemos criar uma variável de referência. Uma classe é declarada abstrata usando a palavra-chave abstract. Inclui métodos abstratos e não abstratos.

57. Podemos usar palavras-chave finais e abstratas em um método?

Não, não podemos usar métodos finais e estáticos junto com abstratos porque um método abstrato deve ser substituído por uma subclasse e um método final não pode ser substituído.

58. Podemos declarar um método como final em uma interface?

Não, não podemos declarar um método como final porque todos os métodos em uma interface são abstratos, portanto ele deve ser implementado por uma subclasse e um método final não pode ser substituído.

59. Nomeie a classe base de todas as classes de exceção Java

A classe base para todas as exceções é java.lang.Throwable .

60. É possível criar vários blocos catch em um bloco try?

Sim, podemos criar vários blocos catch para um bloco try .

61. Defina duas variáveis ​​de ambiente que precisam ser especificadas para executar qualquer programa Java

  1. Variável de caminho.
  2. Variável de caminho de classe.

62. É possível usar um destruidor em Java?

Não, não podemos usar destruidores em Java.

63. O que você quer dizer com aula anônima?

Uma classe interna anônima em Java não tem nome e cria apenas um objeto.

64. Cite um método Java que deve ser implementado para todos os threads

Método Run() .

65. Qual é a diferença entre break e continue em Java?

Quebrar Continuar
Usado para encerrar ou encerrar um loop se uma determinada condição for atendida. Usado para pular a execução do loop para a iteração atual com base em alguma condição.
Ele pode ser usado dentro de um loop e switch. Usado apenas dentro de um loop.

66. O que são pools de strings em Java?

Um pool de strings em Java é uma coleção de strings armazenadas na memória heap.

67. Qual é a diferença entre palavras-chave throw e throws em Java?

Lançar Lança
Usado para lançar explicitamente uma exceção. Usado para declarar uma exceção que pode ser lançada por um método em tempo de execução.
Usado dentro do corpo do método. Usando as palavras-chave throws , podemos declarar múltiplas exceções.
Throw é seguido por uma instância da classe Exception . É seguido pelo nome da classe Exception que será lançada.

68. É possível chamar um construtor dentro de outro construtor da mesma classe?

Sim, podemos chamar um construtor da mesma classe dentro de outro construtor usando this() como primeira linha.

69. É possível comparar String Buffer e classe String em Java?

Não, não podemos comparar objetos String Buffer e String . Porque receberemos um erro.

70. Em que sequência os construtores são chamados durante a herança?

O construtor da classe pai ou base é chamado primeiro e, em seguida, o construtor da classe derivada é chamado.

71. Podemos nomear um construtor diferente do nome da classe?

Não, o construtor e o nome da classe devem ser iguais.

72. O que são pacotes Java?

Um pacote é uma coleção de classes e interfaces agrupadas.

73. Qual é a diferença entre as classes String e StringBuffer?

Corda StringBuffer
A classe String é imutável. A classe StringBuffer é mutável.
Mais lento que StringBuffer . Mais rápido que String .
Ele usa mais memória ao concatenar muitas strings. Ele usa menos memória ao concatenar muitas strings.

74. É possível sobrecarregar métodos estáticos em Java?

Sim, podemos sobrecarregar métodos estáticos em Java passando diferentes assinaturas de funções.

75.Qual componente da memória, pilha ou heap, é limpo durante a coleta de lixo?

Pilha.

76.Qual das seguintes classes de string deve ser usada quando os dados precisam ser atualizados com frequência?

A classe StringBuffer deve ser usada em caso de atualizações frequentes, pois é mutável e, portanto, o pool de strings não será sobrecarregado.

77. O que acontece se a palavra-chave estática não for usada com o método main() em Java?

Não haverá erro de compilação, mas em tempo de execução obteremos um erro NoSuchMethodError .

78. Um bloco finalmente será executado se uma instrução return for colocada no final dos blocos try e catch?

Sim, o bloco final sempre será executado independentemente de haver uma exceção.

79. É possível ter muitas classes públicas em um arquivo fonte Java?

Não, só podemos ter uma classe pública em um arquivo fonte Java.

80. Uma interface pode estender outra interface?

Sim, uma interface pode estender outra interface usando a palavra-chave extends em Java.

81. Cite os diferentes tipos de carregadores de classe em Java

  1. Bootstrap Class Loader

  2. ClassLoader de extensões

  3. ClassLoader do sistema

82. O que o operador ternário faz em Java?

O operador ternário é usado como substituto do operador if-else em Java. Este é o único operador condicional que contém três operandos.

83. O que a coleta de lixo faz em Java?

A coleta de lixo Java é um método pelo qual os aplicativos Java conservam automaticamente sua memória, removendo ou limpando objetos e pacotes não utilizados na memória.

84. Como o construtor padrão é usado em Java?

Em Java, o construtor padrão é usado para inicializar os membros de dados ou variáveis ​​de membro de um objeto com seus valores padrão. É gerado automaticamente pelo compilador quando não há outros construtores no programa.

85. Qual é a diferença entre caminho e caminho de classe em Java

  1. O classpath define a localização dos arquivos de bytecode, ou seja, arquivos .class.
  2. O caminho especifica o local dos arquivos .exe.

86. Quais são os tipos de dados em Java?

Existem 8 tipos de dados em Java:
  1. curto

  2. byte

  3. Caracteres

  4. interno

  5. flutuador

  6. dobro

  7. longo

  8. boleano

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

  1. Encapsulamento.
  2. Abstração.
  3. Polimorfismo.
  4. Herança.

88. Podemos atribuir valor nulo à palavra-chave this em Java?

Não.

89. O que você quer dizer com bloco estático em Java?

O bloco estático em Java é usado para inicializar variáveis ​​estáticas de uma classe. É executado apenas uma vez: quando a classe é carregada pela primeira vez na memória.

90. O que é uma exceção? Qual pacote contém todas as definições de classe de exceção em Java?

As exceções são situações anormais que ocorrem durante a execução do programa. Eles podem ocorrer como resultado de uma entrada incorreta do usuário ou de uma lógica incorreta do codificador. O pacote java.lang.Exception contém todas as definições de classe de exceção em Java.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION