Maison Java JavaQuestions d'entretien Questions d'entretien sur les nouvelles Java 2020 - Exception

Questions d'entretien sur les nouvelles Java 2020 - Exception

Jun 17, 2020 pm 05:12 PM
java 异常 面试题

Questions d'entretien sur les nouvelles Java 2020 - Exception

1. Quelle est la différence entre lancer et lancer ?

throws est utilisé pour déclarer toutes les informations d'exception qu'une méthode peut lancer, c'est déclarer l'exception mais ne pas la gérer. Au lieu de cela, il téléchargera l'exception et laissera celui qui l'appelle la gérer. Throw fait référence à un type d’exception spécifique lancé.

2. Quelle est la différence entre final, enfin et finaliser ?

Final peut modifier les classes, les variables et les méthodes. La classe modifiée signifie que la classe ne peut pas être héritée, la méthode modifiée signifie que la méthode ne peut pas être remplacée et la variable modifiée signifie que la variable est une constante et ne peut pas être réaffecté.

finally fonctionne généralement dans le bloc de code try-catch. Lors de la gestion des exceptions, nous mettons généralement la méthode de code qui doit être exécutée dans le bloc de code final, ce qui signifie que le bloc de code sera exécuté indépendamment du fait qu'un une exception se produit. Généralement utilisé pour stocker du code pour la fermeture des ressources.

(Tutoriel vidéo recommandé : Tutoriel vidéo Java )

finalize est une méthode qui appartient à la classe Object, et la classe Object est la classe parent de toutes les classes. La méthode est généralement appelée par le garbage collector. Lorsque nous appelons la méthode gc() du système, le garbage collector appelle finalize() pour collecter les garbage.

3. Quelle partie de try-catch-finally peut être omise ?

Réponse : catch peut être omis

Raison :

Une déclaration plus stricte est en fait : try ne convient que pour gérer les exceptions d'exécution, try+catch convient pour gérer les exceptions d'exécution Exception temporelle + exception ordinaire. En d'autres termes, si vous utilisez uniquement try pour gérer les exceptions ordinaires sans utiliser catch, la compilation ne réussira pas, car le compilateur stipule de manière rigide que si vous choisissez d'intercepter les exceptions ordinaires, vous devez utiliser catch pour les déclarer explicitement pour un traitement ultérieur. Il n'existe aucune disposition de ce type pour les exceptions d'exécution au moment de la compilation, donc catch peut être omis, et il n'y a rien de mal à ajouter le compilateur catch.

Théoriquement, le compilateur n'est pas satisfait de tout code et pense qu'il peut y avoir des problèmes potentiels, donc même si vous ajoutez try à tout le code, le code ne s'exécutera normalement que pendant l'exécution. Ajoutez une couche de skin. Mais une fois que vous avez ajouté try à un morceau de code, vous promettez explicitement au compilateur d'intercepter les exceptions qui peuvent être générées par ce morceau de code au lieu de les lancer vers le haut. S'il s'agit d'une exception normale, le compilateur exige qu'elle soit interceptée avec catch pour un traitement ultérieur ; s'il s'agit d'une exception d'exécution, elle est interceptée et rejetée et +finalement traitée, ou un catch est ajouté pour un traitement ultérieur.

Quant à l'ajout final, il s'agit d'un processus de "nettoyage" qui doit être effectué indépendamment du fait qu'une exception soit interceptée ou non.

(Tutoriels associés recommandés : programme d'entrée Java)

4 Dans try-catch-finally, s'il y a un retour dans catch, le sera finalement quand même. être exécuté ?

Réponse : Elle sera exécutée avant le retour.

Exemple de code 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;
    }
}
Copier après la connexion

Résultat de l'exécution : 30

Exemple de code 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;
    }
}
Copier après la connexion

Résultat de l'exécution : 40

5. Quels sont les types d'exceptions courants ?

  • NullPointerException : cette exception est levée lorsque l'application tente d'accéder à un objet nul.

  • SQLException : Exception qui fournit des informations sur les erreurs d'accès à la base de données ou d'autres erreurs.

  • IndexOutOfBoundsException : levée lors de l'indication qu'un index de tri (tel que le tri d'un tableau, d'une chaîne ou d'un vecteur) est hors de portée.

  • NumberFormatException : cette exception est levée lorsque l'application tente de convertir une chaîne en un type numérique, mais que la chaîne ne peut pas être convertie au format approprié.

  • FileNotFoundException : cette exception est levée lorsqu'une tentative d'ouverture du fichier représenté par le nom de chemin spécifié échoue.

  • IOException : cette exception est levée lorsqu'une sorte d'exception d'E/S se produit. Cette classe est une classe générale pour les exceptions générées par des opérations d'E/S échouées ou interrompues.

  • ClassCastException : cette exception est levée lorsqu'une tentative est effectuée pour convertir un objet en une sous-classe qui n'est pas une instance.

  • ArrayStoreException : Exception levée lors de la tentative de stocker un objet du mauvais type dans un tableau d'objets.

  • IllegalArgumentException : une exception levée indiquant qu'un paramètre illégal ou incorrect a été transmis à la méthode.

  • ArithmeticException : cette exception est levée lorsque des conditions de fonctionnement anormales se produisent. Par exemple, lorsqu'un entier est « divisé par zéro », une instance de cette classe est levée.

  • NegativeArraySizeException : Cette exception est levée si l'application tente de créer un tableau avec une taille négative.

  • NoSuchMethodException : cette exception est levée lorsqu'une méthode spécifique est introuvable.

  • SecurityException : Exception levée par le responsable de la sécurité pour indiquer une violation de sécurité.

  • UnsupportedOperationException : cette exception est levée lorsque l'opération demandée n'est pas prise en charge.

  • RuntimeExceptionRuntimeException : est la super classe d'exceptions qui peuvent être levées lors du fonctionnement normal de la machine virtuelle Java.

Si vous souhaitez en savoir plus sur les questions d'entretien, veuillez visiter questions d'entretien Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Numéro Armstrong en Java Numéro Armstrong en Java Aug 30, 2024 pm 04:26 PM

Guide du numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

See all articles