Maison  >  Article  >  Java  >  La différence entre final, enfin et finaliser en Java

La différence entre final, enfin et finaliser en Java

王林
王林original
2024-02-19 12:16:221226parcourir

La différence entre final, enfin et finaliser en Java

La différence entre final, finalement et finaliser en Java nécessite des exemples de code spécifiques

En programmation Java, vous rencontrez souvent les trois mots-clés final, enfin et finaliser. Bien qu'ils soient orthographiés de la même manière, ils ont des significations différentes. et l'utilisation. Cet article expliquera en détail les différences entre ces trois mots-clés et donnera des exemples de code pour aider les lecteurs à mieux comprendre.

1. Mot-clé final
Le mot-clé final peut être utilisé pour les classes, les méthodes et les variables. Sa fonction est de rendre immuable la classe, la méthode ou la variable modifiée.

  1. Classe finale :
    La classe finale modifiée signifie que la classe ne peut pas être héritée, c'est-à-dire que ses sous-classes ne peuvent pas exister.

Exemple de code :

final class A {
    // class implementation
}

// 以下代码会报错,无法继承final类A
class B extends A {
    // class implementation
}
  1. Méthode finale :
    La méthode finale modifiée signifie que la méthode ne peut pas être remplacée par des sous-classes.

Exemple de code :

class A {
    final void foo() {
        // method implementation
    }
}

class B extends A {
    @Override
    void foo(){  //以下代码会报错,无法重写final方法
        // method implementation
    }
}
  1. variable finale :
    variable finale modifiée signifie que la valeur de la variable ne peut pas être modifiée, c'est-à-dire qu'il s'agit d'une constante. Les variables finales peuvent être initialisées lorsqu'elles sont déclarées ou dans le constructeur.

Exemple de code :

class A {
    final int x = 10;  //声明时初始化
    
    final int y;
    A(){
        y = 20;  //在构造方法中初始化
    }
}

class B {
    void foo() {
        final int z = 30;  //局部变量,必须在声明时初始化
        // method implementation
    }
}

2. Mot-clé Enfin
Le mot-clé final est souvent utilisé dans les blocs d'instructions try-catch-finally pour garantir que le code du bloc final sera exécuté, qu'une exception se produise ou non. Le bloc final est généralement utilisé pour libérer des ressources ou effectuer certains travaux de nettoyage nécessaires.

Exemple de code :

try {
    // 可能发生异常的代码
}
catch (Exception e) {
    // 异常处理逻辑
}
finally {
    // 最终执行的代码,无论是否发生异常,都会执行
    // 释放资源或者其他清理工作
}

3. Méthode Finalize
La méthode finalize() est la méthode de récupération de place d'un objet. Le garbage collector appellera cette méthode avant que l'objet ne soit recyclé par le garbage collector. Cette méthode est généralement utilisée pour libérer les ressources sous-jacentes liées à l'objet. Cependant, l'exécution de la méthode finalize() n'est pas garantie à temps, il n'est donc pas recommandé d'utiliser cette méthode pour libérer des ressources importantes.

Exemple de code :

class A {
    // 对象的垃圾回收方法
    protected void finalize() throws Throwable {
        // 释放与对象相关的底层资源
        super.finalize();
    }
}

public static void main(String[] args) {
    A obj = new A();
    obj = null;  // 将对象置为null,让垃圾回收器回收
    System.gc();  // 手动触发垃圾回收
}

Pour résumer, les trois mots-clés final,finally et finalize ont des significations et des usages différents en Java. final est utilisé pour modifier les classes, les méthodes et les variables, indiquant qu'elles sont immuables ;finally est utilisé dans les blocs d'instructions try-catch-finally pour garantir que le code qu'il contient sera exécuté indépendamment du fait qu'une exception se produise ; est le garbage collection d'une méthode objet, appelée avant que l'objet ne soit recyclé. Comprendre leurs différences et leur utilisation correcte est très utile pour écrire du code Java de haute qualité et facile à maintenir.

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:
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