Perguntas comuns da entrevista em grandes fábricas, você comete erros de baixo nível acidentalmente, as últimas perguntas comuns da entrevista Java em 2020, perguntas básicas (com respostas detalhadas)

Mais recente coleção Java de 2020 de perguntas de entrevistas comuns + respostas detalhadas (6)

 

As perguntas da entrevista foram atualizadas para o sexto módulo. Recentemente, também estou perguntando sobre sua experiência em entrevistas com parceiros recentes em grandes fábricas e me esforço para que todos saibam as últimas notícias e coletar informações de entrevista mais abrangentes. Se você quiser ver as primeiras coleções, pode ir à minha página inicial para encontrá-las.

Algumas das respostas foram resumidas por mim mesmo e outras foram coletadas na Internet. Não entre em pânico depois de assistir a essas entrevistas! Se você tem mais experiência, você pode compartilhar nos comentários. Se você tiver algum erro, fique à vontade para apontá-lo. Por favor, me avise, obrigado ~

anormal

61. A diferença entre arremessos e arremessos?

 

Throws é usado para declarar todas as informações de exceção que um método pode lançar. Throws é declarar a exceção, mas não tratá-la, mas fazer upload da exceção, quem quer que a chame, eu tratarei dela. E lançar se refere a um tipo específico de exceção lançada.

 

62. Qual é a diferença entre final, finally e finalize?

 

  • Final pode modificar classes, variáveis ​​e métodos. As classes modificadas indicam que a classe não pode ser herdada, os métodos modificados indicam que o método não pode ser reescrito e as variáveis ​​modificadas indicam que a variável é uma constante e não pode ser reatribuída.

  • Finalmente é geralmente usado no bloco de código try-catch. Ao lidar com exceções, geralmente devemos executar o método de código no bloco de código finally, o que significa que o bloco de código será executado independentemente de haver uma exceção ou não, e geralmente é usado para armazenar alguns recursos fechados Código.

  • Finalize é um método, um método da classe Object, e a classe Object é a classe pai de todas as classes. Este método geralmente é chamado pelo coletor de lixo. Quando chamamos o método gc () do System, as chamadas do coletor de lixo finalizam (),reciclar lixo. 

 

63. Qual parte de try-catch-finally pode ser omitida?

 

Resposta: a captura pode ser omitida

 

o motivo:

Uma declaração mais estrita é na verdade: try só é adequado para lidar com exceções de tempo de execução, try + catch é adequado para lidar com exceções de tempo de execução + exceções comuns. Em outras palavras, se você usar apenas try para manipular exceções comuns sem capturá-las, a compilação não será aprovada, porque o compilador estipula rigidamente que se você escolher capturar exceções comuns, deverá usar catch para exibir a declaração para processamento posterior. A exceção de tempo de execução não é especificada em tempo de compilação, portanto, catch pode ser omitido e você adiciona o compilador catch para sentir que é compreensível.
 

Em teoria, o compilador olha para qualquer código que não agrada aos olhos e sente que pode haver problemas em potencial, então, mesmo se você adicionar try a todo o código, o código é apenas uma camada de pele com base na operação normal durante o tempo de execução. Mas, uma vez que você adiciona try a um trecho de código, é equivalente a uma promessa explícita ao compilador de capturar exceções que esse trecho de código pode lançar em vez de jogá-lo para cima. Se for uma exceção normal, o compilador requer que ele seja capturado com catch para processamento posterior; se for anormal no tempo de execução, será capturado e, em seguida, descartado e processado com + finalmente, ou catch é adicionado para processamento posterior.
 

Quanto à adição, finalmente, é o processamento de "acabamento" que deve ser executado independentemente de a exceção ser detectada ou não.

 

64. Em try-catch-finally, se o catch for retornado, o finalmente será executado?

 

Resposta: Será executado e executado antes do retorno.

 

Exemplo de código 1:

/*
 * java面试题--如果catch里面有return语句,finally里面的代码还会执行吗?
 */
public class FinallyDemo2 {
    public static void main(String[] args) {
        System.out.println(getInt());
    }

    public static int getInt() {
        int a = 10;
        try {
            System.out.println(a / 0);
            a = 20;
        } catch (ArithmeticException e) {
            a = 30;
            return a;
            /*
             * return a 在程序执行到这一步的时候,这里不是return a 而是 return 30;这个返回路径就形成了
             * 但是呢,它发现后面还有finally,所以继续执行finally的内容,a=40
             * 再次回到以前的路径,继续走return 30,形成返回路径之后,这里的a就不是a变量了,而是常量30
             */
        } finally {
            a = 40;
        }

//      return a;
    }
}
 

Resultados da implementação: 30

 

Exemplo de código 2:

package com.java_02;

/*
 * java面试题--如果catch里面有return语句,finally里面的代码还会执行吗?
 */
public class FinallyDemo2 {
    public static void main(String[] args) {
        System.out.println(getInt());
    }

    public static int getInt() {
        int a = 10;
        try {
            System.out.println(a / 0);
            a = 20;
        } catch (ArithmeticException e) {
            a = 30;
            return a;
            /*
             * return a 在程序执行到这一步的时候,这里不是return a 而是 return 30;这个返回路径就形成了
             * 但是呢,它发现后面还有finally,所以继续执行finally的内容,a=40
             * 再次回到以前的路径,继续走return 30,形成返回路径之后,这里的a就不是a变量了,而是常量30
             */
        } finally {
            a = 40;
            return a; //如果这样,就又重新形成了一条返回路径,由于只能通过1个return返回,所以这里直接返回40
        }

//      return a;
    }
}
 

Resultados da implementação: 40

Pontos de conhecimento comum são fáceis de ignorar, todos vocês os responderam?

65. Quais são os tipos de exceção comuns?

 

  • NullPointerException: essa exceção é lançada quando o aplicativo tenta acessar um objeto nulo.

  • SQLException: Fornece exceções sobre erros de acesso ao banco de dados ou outras informações de erro.

  • IndexOutOfBoundsException: indica que um índice de classificação (por exemplo, a classificação de uma matriz, string ou vetor) é jogado fora do intervalo. 

  • NumberFormatException: esta exceção é lançada quando o aplicativo tenta converter uma string em um tipo numérico, mas a string não pode ser convertida em um formato apropriado.

  • FileNotFoundException: essa exceção é lançada quando uma tentativa de abrir o arquivo indicado pelo nome do caminho especificado falha.

  • IOException: esta exceção é lançada quando ocorre uma determinada exceção de E / S. Esta classe é uma classe geral de exceções geradas por operações de E / S com falha ou interrompidas.

  • ClassCastException: esta exceção é lançada ao tentar lançar um objeto para uma subclasse que não é uma instância.

  • ArrayStoreException: uma exceção lançada ao tentar armazenar um objeto do tipo errado em uma matriz de objeto.

  • IllegalArgumentException: A exceção lançada indica que um parâmetro ilegal ou incorreto foi passado para o método.

  • ArithmeticException: essa exceção é lançada quando ocorre uma condição de operação anormal. Por exemplo, quando um inteiro é "dividido por zero", uma instância dessa classe é lançada. 

  • NegativeArraySizeException: se o aplicativo tentar criar uma matriz com um tamanho negativo, essa exceção será lançada.

  • NoSuchMethodException: essa exceção é lançada quando um método específico não pode ser encontrado.

  • SecurityException: uma exceção lançada pelo gerenciador de segurança, indicando que há uma violação de segurança.

  • UnsupportedOperationException: esta exceção é lançada quando a operação solicitada não é suportada.

  • RuntimeExceptionRuntimeException: É a superclasse de exceções que podem ser lançadas durante a operação normal da máquina virtual Java.

Finalmente

O conteúdo das perguntas da entrevista está aqui, espero que seja útil para todos.

Para terminar, quero dizer-lhe uma coisa: trabalho há tantos anos e entrevistei algumas pessoas para outras. Seja do ponto de vista do entrevistador ou do líder, além das habilidades e experiência em entrevistar, grande tecnologia e experiência em projetos também são seus trunfos e confiança. Compartilhamento de tecnologia de núcleo de fabricantes de primeira linha

 Levei muito tempo para organizar alguns materiais de aprendizagem. O que postei acima é a ponta do iceberg dos materiais. Espero poder ajudar você! Clique para aprender juntos cifra: csdn

                         

  Compartilharei mais artigos secos puros no seguimento e espero poder realmente ajudá-lo. Seu apoio é minha maior motivação!

Acho que você gosta

Origin blog.csdn.net/weixin_50333534/article/details/108784326
Recomendado
Clasificación