Table des matières
Effectivement Final
Avantages de final
Utilisation du mot-clé final
Résumé
Maison Java javaDidacticiel Analyse finale approfondie et globale

Analyse finale approfondie et globale

Jul 19, 2017 pm 01:14 PM
final à propos


Java a un mot-clé final, une variable peut être déclarée comme type final et une variable de type final ne peut être attribuée qu'une seule fois. Si une variable finale reçoit une valeur à plusieurs reprises, une erreur de compilation se produira.


Quelle est la signification du mot-clé final ?

final est un mot-clé réservé en Java qui peut déclarer des variables membres, des méthodes, des classes et des variables locales. Une fois que vous avez déclaré une référence finale, vous ne pouvez pas modifier la référence. Le compilateur vérifiera le code et signalera une erreur de compilation si vous essayez d'initialiser à nouveau la variable.

Qu'est-ce qu'une variable finale ?

Toutes les variables membres ou variables locales (les variables dans les méthodes ou les blocs de code sont appelées variables locales) qui sont déclarées finales sont appelées variables finales. Les variables finales sont souvent utilisées avec le mot-clé static comme constantes. Voici un exemple de variable finale :

public static final String LOAN = "loan";

LOAN = new String("loan") //erreur de compilation invalide

les variables finales sont en lecture seule.

Qu'est-ce qu'une méthode finale ?

Final peut également déclarer des méthodes. Ajouter le mot-clé final devant une méthode signifie que cette méthode ne peut pas être remplacée par les méthodes des sous-classes. Si vous pensez que la fonction d'une méthode est suffisamment complète et n'a pas besoin d'être modifiée dans les sous-classes, vous pouvez déclarer la méthode comme finale. Les méthodes finales sont plus rapides que les méthodes non finales car elles sont liées statiquement au moment de la compilation et n'ont pas besoin d'être liées dynamiquement au moment de l'exécution. Voici un exemple de méthode finale :

class PersonalLoan{
    public final String getName(){
        return "personal loan";
    }
}
 
class CheapPersonalLoan extends PersonalLoan{
    @Override
    public final String getName(){
        return "cheap personal loan"; //compilation error: overridden method is final
    }
}
Copier après la connexion

Qu'est-ce qu'un cours final ?

Une classe modifiée avec final est appelée une classe finale. Les classes finales sont généralement fonctionnellement complètes et ne peuvent pas être héritées. Il existe de nombreuses classes en Java qui sont finales, telles que String, Interger et d'autres classes wrapper. Voici un exemple de la classe finale :

final class PersonalLoan{
 
    }
 
    class CheapPersonalLoan extends PersonalLoan{  //compilation error: cannot inherit from final class
 
}
Copier après la connexion

Avantages du mot-clé final

Ce qui suit résume quelques utilisations Avantages du mot-clé final

Le mot-clé final améliore les performances. Les applications JVM et Java mettent en cache les variables finales.

Les variables finales peuvent être partagées en toute sécurité dans un environnement multithread sans surcharge de synchronisation supplémentaire.

En utilisant le mot-clé final, la JVM optimisera les méthodes, les variables et les classes.

Effectivement Final

Une variable sera considérée comme effectivement finale si et seulement si :

Non déclarée comme finale

2 .La valeur. n'est attribué qu'une seule fois

La façon la plus simple d'expliquer efficacement final est d'imaginer qu'il est modifié avec final S'il est modifié de cette manière, le programme s'exécutera toujours sans erreur (si la compilation. passe) ^0^), et est cohérent avec le résultat d'exécution d'origine, alors cette variable peut être considérée comme effectivement finale.

Avantages de final

La restriction des variables locales à des variables immuables valides est conçue pour permettre aux développeurs de mieux gérer la concurrence et le développement thread-safe. Les champs mutables sont toujours une source potentielle de problèmes de concurrence s'ils ne sont pas gérés correctement.

Utilisation du mot-clé final

Je pense que c'est une bonne habitude de déclarer les variables, les paramètres de méthode, etc. comme final. Cela peut être un bon rappel aux autres membres de l'équipe de ne pas le modifier à la légère. Mettez cela de côté, déclarez-le comme final, et le compilateur l'optimisera bien lors de sa compilation dans un fichier de classe.

Il existe de nombreux arguments contre "il est incorrect d'utiliser le mot-clé final dans les fichiers sources pour obtenir l'optimisation des fichiers de classe". Il est fortement recommandé de lire "Hardcore Java 》 Détails sur l'utilisation et l'optimisation des mots-clés finaux.

Dans une application, le mot-clé final rend l'intention de votre code évidente, et il ne sera pas modifié après la déclaration, ce qui est très sûr.

public class FinalTest {

    public static final int N_ITERATIONS = 10_00_000;

    public static String testFinal() {
        final String a = "a";
        final String b = "b";
        return a + b;
    }

    public static String testNonFinal() {
        String a = "a";
        String b = "b";
        return a + b;
    }

    public static void main(String[] args) {
        long tStart, tElapsed;

        tStart = System.currentTimeMillis();
        for (int i = 0; i < N_ITERATIONS; i++)
            testFinal();
        tElapsed = System.currentTimeMillis() - tStart;
        System.out.println("Method with finals took " + tElapsed + " ms");

        tStart = System.currentTimeMillis();
        for (int i = 0; i < N_ITERATIONS; i++)
            testNonFinal();
        tElapsed = System.currentTimeMillis() - tStart;
        System.out.println("Method without finals took " + tElapsed + " ms");

    }

}
Copier après la connexion

Résultats en cours d'exécution :

Method with finals took 5 ms
Method without finals took 273 ms
Copier après la connexion

Résumé

final peut rendre les variables que vous déclarez plus sûres, Pour rendez votre code plus clair, Effective Java préconise également l'utilisation de classes immuables.


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
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

La différence entre final, enfin et finaliser en Java La différence entre final, enfin et finaliser en Java Feb 19, 2024 pm 12:16 PM

La différence entre final, finalement et finaliser en Java nécessite des exemples de code spécifiques. Dans la 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 et des utilisations différentes. 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 la classe modifiée

En Java, est-il possible de définir une constante en utilisant uniquement le mot-clé final ? En Java, est-il possible de définir une constante en utilisant uniquement le mot-clé final ? Sep 20, 2023 pm 04:17 PM

Une variable constante est une variable dont la valeur est fixe et dont une seule copie existe dans le programme. Une fois que vous avez déclaré une variable constante et lui avez attribué une valeur, vous ne pouvez plus modifier sa valeur tout au long du programme. Contrairement à d'autres langages, Java ne prend pas directement en charge les constantes. Cependant, vous pouvez toujours créer une constante en déclarant une variable static et final. Statique - Une fois que vous avez déclaré une variable statique, elle sera chargée en mémoire au moment de la compilation, c'est-à-dire qu'une seule copie sera disponible. Final - Une fois que vous avez déclaré une variable finale, sa valeur ne peut plus être modifiée. Par conséquent, vous pouvez créer une constante en Java en déclarant la variable d'instance comme statique et finale. Exemple de démonstration classData{&am

Quelle est la fonction du mot - clé final Java Quelle est la fonction du mot - clé final Java Nov 25, 2022 pm 04:26 PM

En Java, final peut être utilisé pour modifier des classes, des méthodes et des variables. La classe finale modifiée signifie que la classe ne peut être héritée par aucune autre classe, ce qui signifie que cette classe est une classe feuille dans un arbre d'héritage, et la conception de cette classe a été considérée comme parfaite et n'a pas besoin d'être modifiée ou étendue. La méthode dans la classe finale modifiée signifie que la classe ne peut être héritée par aucune autre classe et ne peut pas être remplacée ; c'est-à-dire que la méthode est verrouillée pour empêcher la classe héritée de la modifier. final modifie une variable dans une classe, indiquant que la variable ne peut pas être modifiée une fois initialisée.

Comment les objets finaux sont-ils créés en Java ? Comment les objets finaux sont-ils créés en Java ? Apr 11, 2024 pm 02:00 PM

Il existe deux manières de créer des objets finaux en Java : en déclarant une variable finale ou en déclarant une classe à l'aide du modificateur final. Lorsqu'une variable finale est déclarée, l'objet est créé via un initialiseur ; lorsqu'une classe finale est déclarée, l'instance de classe est immuable. Il est important de noter que les références aux objets finaux peuvent toujours changer, mais les objets vers lesquels elles pointent sont immuables.

variable finale en java variable finale en java Sep 24, 2023 pm 08:49 PM

Les variables finales ne peuvent être explicitement initialisées qu'une seule fois. Une variable de référence déclarée comme Final ne peut jamais être réaffectée pour faire référence à un objet différent. Cependant, les données contenues dans l'objet peuvent être modifiées. Par conséquent, l’état de l’objet peut changer, mais pas la référence. Pour les variables, le modificateur final est généralement utilisé avec static pour faire de la constante une variable de classe. Exemple publicclassTest{ finalintvalue=10; //Voici des exemples de déclaration de constantes : &a

Interface ColorOS15 exposée A propos de cette machine, voici un gros changement. Interface ColorOS15 exposée A propos de cette machine, voici un gros changement. Aug 28, 2024 pm 03:31 PM

Récemment, ColorOS15 a pris l'initiative de lancer des tests bêta internes. Certains internautes ont exposé l'interface correspondante. Comme vous pouvez le voir sur l'image ci-dessus, certains internautes ont publié l'interface « À propos de cette machine » d'OPPO Find X7. ColorOS15Beta. En plus du grand changement dans le modèle supérieur, les informations de configuration dans la moitié inférieure sont également passées des deux colonnes précédentes à une distribution verticale sur une seule colonne. Vous trouverez ci-joint l'interface « À propos de ce téléphone/téléphone mobile » dans les dernières versions de téléphones mobiles de six marques : Huawei, Honor, Xiaomi, OPPO, vivo et Meizu. Vous pouvez me dire quelle disposition vous préférez concernant ColorOS 15. les nouvelles précédentes indiquaient qu'en plus de prendre en charge les photos en direct LivePhoto à grande échelle, il « prendra également en charge AirDrop&

Interface ColorOS15 exposée A propos de cette machine, voici un gros changement. Interface ColorOS15 exposée A propos de cette machine, voici un gros changement. Aug 28, 2024 pm 03:31 PM

Récemment, ColorOS15 a pris l'initiative de lancer des tests bêta internes. Certains internautes ont exposé l'interface correspondante. Comme vous pouvez le voir sur l'image ci-dessus, certains internautes ont publié l'interface « À propos de cette machine » d'OPPO Find X7. ColorOS15Beta. En plus du grand changement dans le modèle supérieur, les informations de configuration dans la moitié inférieure sont également passées des deux colonnes précédentes à une distribution verticale sur une seule colonne. Vous trouverez ci-joint l'interface « À propos de ce téléphone/téléphone mobile » dans les dernières versions de téléphones mobiles de six marques : Huawei, Honor, Xiaomi, OPPO, vivo et Meizu. Vous pouvez me dire quelle disposition vous préférez concernant ColorOS 15. les nouvelles précédentes indiquaient qu'en plus de prendre en charge les photos en direct LivePhoto à grande échelle, il « prendra également en charge AirDrop&

Syntaxe spéciale en PHP : mots-clés statiques, finaux, abstraits et autres Syntaxe spéciale en PHP : mots-clés statiques, finaux, abstraits et autres May 11, 2023 pm 04:00 PM

PHP est un langage de script open source côté serveur largement utilisé dans le développement Web. Le langage PHP est non seulement facile à apprendre et à utiliser, mais il prend également en charge une variété de paradigmes de programmation, programmation orientée objet, programmation fonctionnelle, etc. En PHP, il existe des mots-clés de syntaxe spéciaux, tels que Static, Final, Abstract, etc., qui ont des fonctions spéciales dans la programmation orientée objet. Cet article présentera ces mots-clés en détail. Mot-clé Static En PHP, le mot-clé Static a deux utilisations

See all articles