JavaRush /Blogue Java /Random-PT /Perguntas complicadas sobre Java que são frequentemente f...

Perguntas complicadas sobre Java que são frequentemente feitas em entrevistas

Publicado no grupo Random-PT
Se você já se preparou para uma entrevista para o cargo de programador Java ou fez algum exame (não necessariamente de programação) para obter um certificado, provavelmente já percebeu que as perguntas que eles fazem são muito específicas. Muitos deles fazem você pensar na arquitetura da linguagem, alguns são projetados para um conhecimento profundo. Existem também aqueles que mais parecem quebra-cabeças ou nuances preocupantes que são muito difíceis de sentir sem prática. Neste artigo, o desenvolvedor Saraans Singh fornece várias perguntas sobre Java. Com respostas, é claro. Perguntas complicadas sobre Java que são frequentemente feitas em entrevistas - 11. O que acontece se você colocar uma instrução return ou System.exit() em um bloco try/catch? Esta é uma questão de atualização muito popular em Java. O truque é que muitos programadores acreditam que o bloco finallyserá executado de qualquer maneira. Esta questão desafia este conceito colocando uma instrução returnem um bloco try/catchou chamando a partir de um bloco try/catchde instruções System.exit (). A resposta para esta pergunta complicada: o bloco finallyserá executado quando uma instrução for colocada returnem um bloco try/catche não será executado quando chamado a partir de um bloco try/catchde instruções System.exit (). 2. Java suporta herança múltipla? Esta é uma pergunta muito complicada. Os entrevistadores costumam dizer: se C++ pode suportar herança múltipla direta, por que Java não pode? A resposta é um pouco mais complicada do que parece, já que Java suporta herança de múltiplos tipos, porque uma interface nele pode estender outras interfaces. Mas a linguagem Java não suporta herança múltipla de implementações. 3. No caso em que um método lança uma exceção NullPointerExceptionna classe pai, ele pode ser substituído pelo método que lança RuntimeException? Outra questão complicada relacionada aos conceitos de sobrecarga e substituição. Resposta: Você pode lançar com segurança uma exceção de classe pai em um método substituído NullPointerException – RuntimeException, mas não pode fazer o mesmo com uma exceção verificada de tipo Exception. 4. Como garantir que os threads possam acessar recursos sem conflitos? NN Se você não é muito bom em escrever código multithread, esta questão será realmente complicada para você. Pode ser um desafio mesmo para um programador experiente que não tenha lidado com impasses e condições de corrida. O truque aqui está na ordem: o impasse pode ser evitado liberando recursos na ordem inversa em que foram adquiridos. 5. Qual é a diferença entre classes StringBuffere StringBuilderna linguagem Java? Uma pergunta clássica sobre a linguagem Java, considerada complicada por alguns desenvolvedores e muito simples por outros. A classe StringBuilderfoi introduzida no JDK 1.5 e a única diferença entre eles é que os métodos da classe StringBuffer, por exemplo, length()ou capacity(), append()são sincronizados, enquanto os métodos correspondentes da classe StringBuildernão são. Devido a essa diferença fundamental, a concatenação de strings StringBuilderé mais rápida com StringBuffer. Na verdade, StringBuffernão é recomendado o uso, pois em 99% dos casos de uso a concatenação de strings é feita na mesma thread. 6. O que a expressão 1.0/0.0 retorna? Isso lançará uma exceção ou causará um erro de compilação? Outra pergunta complicada sobre a classe Double. Embora os desenvolvedores Java estejam cientes do tipo de dados simples double e da classe Double, ao executar operações de ponto flutuante, eles não prestam atenção suficiente a Double.INFINITY, e às regras que regem os cálculos aritméticos associados a eles. A resposta para esta pergunta é simples: nenhuma exceção será lançada, o valor será retornado . 7. O que acontece se você tentar inserir um objeto-chave em um objeto-chave que já existe nele? Esta pergunta complicada faz parte de outra pergunta frequente: como eles funcionam em Java? é um tópico popular para perguntas confusas e complicadas sobre a linguagem Java. A resposta é que se você tentar reinserir uma chave , ela substituirá a antiga porque a classe não permite chaves duplicadas. E a mesma chave significa o mesmo código hash, então terminará no mesmo lugar no segmento hash. Baseado em materiais do QuoraNaN-0.0ArithmeticExceptionDouble.INFINITYHashMapHashMapHashMapHashMapHashMap
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION