Table des matières
1. Qu'est-ce qu'un objet mutable ? " >1. Qu'est-ce qu'un objet mutable ?
2. Qu'est-ce qu'un objet immuable ? " > 2. Qu'est-ce qu'un objet immuable ?
3. Choix des objets mutables et immuables " >3. Choix des objets mutables et immuables
Maison Java javaDidacticiel Analyse comparative des objets mutables et des objets immuables en Java

Analyse comparative des objets mutables et des objets immuables en Java

Jul 20, 2017 pm 01:18 PM
不可变 variable 对象

1. Qu'est-ce qu'un objet mutable ?

Les objets qui ne créent pas de nouveaux objets lorsque leurs attributs sont modifiés, tels que StringBuiler, peuvent considérer les chaînes qui y sont stockées comme des attributs lors de l'appel de StringBuilder.append(String str) pour ajouter. une chaîne, c'est Ceci est fait sur la base de l'objet StringBuilder existant et aucun nouvel objet n'est créé.

Les classes wrapper des types de données de base et les objets de presque toutes les classes à l'exception de la classe String sont des objets mutables.

2. Qu'est-ce qu'un objet immuable ?

Lorsque les propriétés sont modifiées, un nouvel objet doit être créé, tel que String. S'il existe déjà "String str='abc'", attribuez "str='efg'". à nouveau et créez une nouvelle chaîne. L'objet stocke "efg" et str pointe vers cet objet nouvellement créé.

Les classes wrapper des types de données de base et les objets de la classe String sont des objets immuables.

3. Choix des objets mutables et immuables

Les objets immuables représentent une zone stable en mémoire et plusieurs variables de référence pointant vers la même zone, lorsqu'une variable de référence tente de modifier le contenu de l'objet, elle ne modifiera pas le contenu de l'objet d'origine, mais créera un nouvel objet. Cela garantit la stabilité des données. Par conséquent, les objets immuables sont généralement utilisés dans les situations où les données sont nécessaires. pour rester stable.

Lors de la mise à jour des attributs d'un objet variable, aucun nouvel objet ne sera créé pour économiser de l'espace mémoire. Par conséquent, les objets variables sont principalement utilisés dans les situations où les attributs changent fréquemment, comme les compteurs. Il est nécessaire d'établir des objets statistiques et la relation cartographique entre les résultats statistiques est donc construite comme une collection Map. Les objets entiers sont des objets immuables et ne conviennent pas au stockage de résultats statistiques. Un objet mutable doit être utilisé pour stocker les résultats statistiques. Bien sûr, il peut également s'agir d'un objet personnalisé. Il existe un attribut int utilisé pour le comptage. :

    public void test01() {
        String str = "abc efe hig klm nop qrs";
        String[] arr = str.split(" ");

        HashMap<String, int[]> map = new HashMap<String, int[]>();for (String x : arr) {int[] count = map.get(x);if (count != null)
                count[0]++;elsemap.put(x, new int[] { 1 });
        }
    }
Copier après la connexion

Les objets immuables présentent plusieurs avantages :
1. L'allocation de mémoire est fixe et n'a pas besoin d'être étendue
2. peut copier plusieurs copies à volonté, différentes Il n'est pas nécessaire de verrouiller ou de déverrouiller entre les threads
Il s'agit de la fonctionnalité "variable inchangée" dans la programmation fonctionnelle. Bien entendu, la programmation fonctionnelle présente d’autres avantages, comme la clarté du code, etc., mais c’est une question d’opinion.

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 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)

Convertissez un tableau ou un objet en chaîne JSON à l'aide de la fonction json_encode() de PHP Convertissez un tableau ou un objet en chaîne JSON à l'aide de la fonction json_encode() de PHP Nov 03, 2023 pm 03:30 PM

JSON (JavaScriptObjectNotation) est un format d'échange de données léger qui est devenu un format courant pour l'échange de données entre applications Web. La fonction json_encode() de PHP peut convertir un tableau ou un objet en chaîne JSON. Cet article explique comment utiliser la fonction json_encode() de PHP, y compris la syntaxe, les paramètres, les valeurs de retour et des exemples spécifiques. Syntaxe La syntaxe de la fonction json_encode() est la suivante : st

Exploration du code source : Comment les objets sont-ils appelés en Python ? Exploration du code source : Comment les objets sont-ils appelés en Python ? May 11, 2023 am 11:46 AM

Wedge Nous savons que les objets sont créés de deux manières principales, l'une via Python/CAPI et l'autre en appelant un objet de type. Pour les objets d'instance de types intégrés, les deux méthodes sont prises en charge. Par exemple, les listes peuvent être créées via [] ou list(). La première est Python/CAPI et la seconde est un objet de type appelant. Mais par exemple les objets de classes personnalisées, nous ne pouvons les créer qu'en appelant des objets de type. Si un objet peut être appelé, alors l'objet est appelable, sinon il ne l'est pas. Déterminer si un objet est appelable dépend du fait qu'une méthode est définie dans son objet de type correspondant. comme

Qu'est-ce que l'objet Request en PHP ? Qu'est-ce que l'objet Request en PHP ? Feb 27, 2024 pm 09:06 PM

L'objet Request en PHP est un objet utilisé pour gérer les requêtes HTTP envoyées par le client au serveur. Grâce à l'objet Request, nous pouvons obtenir les informations de demande du client, telles que la méthode de demande, les informations d'en-tête de demande, les paramètres de demande, etc., afin de traiter et de répondre à la demande. En PHP, vous pouvez utiliser des variables globales telles que $_REQUEST, $_GET, $_POST, etc. pour obtenir les informations demandées, mais ces variables ne sont pas des objets, mais des tableaux. Afin de traiter les informations demandées de manière plus flexible et plus pratique, vous pouvez

Comment convertir le tableau de résultats d'une requête MySQL en objet ? Comment convertir le tableau de résultats d'une requête MySQL en objet ? Apr 29, 2024 pm 01:09 PM

Voici comment convertir un tableau de résultats de requête MySQL en objet : Créez un tableau d'objets vide. Parcourez le tableau résultant et créez un nouvel objet pour chaque ligne. Utilisez une boucle foreach pour attribuer les paires clé-valeur de chaque ligne aux propriétés correspondantes du nouvel objet. Ajoute un nouvel objet au tableau d'objets. Fermez la connexion à la base de données.

Comment ajuster les coins arrondis du champ de recherche Win10 Comment ajuster les coins arrondis du champ de recherche Win10 Jan 15, 2024 pm 03:12 PM

Il y a eu des nouvelles sur les coins arrondis du champ de recherche Win10 depuis longtemps, mais cela n'a jamais été implémenté. Nous pouvons généralement utiliser le registre pour découvrir les coins arrondis du champ de recherche Win10. Jetons donc un coup d'œil au didacticiel. sur les coins arrondis de la barre de recherche win10. Coins arrondis variables du champ de recherche Win10 : 1. Ouvrez le champ de recherche, entrez regedit et entrez dans le registre. 2. Recherchez ce chemin dans Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search. 3. Dans l'espace vide, sélectionnez Nouveau - Valeur DWORD (32 bits) - Nommez la nouvelle clé ImmersiveSearch - Numéro

Utilisez la fonction __contains__() de Python pour définir l'opération de confinement d'un objet Utilisez la fonction __contains__() de Python pour définir l'opération de confinement d'un objet Aug 22, 2023 pm 04:23 PM

Utilisez la fonction __contains__() de Python pour définir l'opération de confinement d'un objet. Python est un langage de programmation concis et puissant qui fournit de nombreuses fonctionnalités puissantes pour gérer différents types de données. L'un d'eux consiste à implémenter l'opération de confinement des objets en définissant la fonction __contains__(). Cet article explique comment utiliser la fonction __contains__() pour définir l'opération de confinement d'un objet et donne un exemple de code. La fonction __contains__() est Python

Utilisez la fonction __le__() de Python pour définir une comparaison inférieure ou égale de deux objets Utilisez la fonction __le__() de Python pour définir une comparaison inférieure ou égale de deux objets Aug 21, 2023 pm 09:29 PM

Titre : Utilisation de la fonction __le__() de Python pour définir une comparaison inférieure ou égale de deux objets En Python, nous pouvons définir des opérations de comparaison entre des objets en utilisant des méthodes spéciales. L'une d'elles est la fonction __le__(), qui est utilisée pour définir des comparaisons inférieures ou égales. La fonction __le__() est une méthode magique en Python et est une fonction spéciale utilisée pour implémenter l'opération « inférieur ou égal ». Lorsque nous comparons deux objets en utilisant l'opérateur inférieur ou égal (&lt;=), Python

Quelle est la différence entre les tableaux et les objets en PHP ? Quelle est la différence entre les tableaux et les objets en PHP ? Apr 29, 2024 pm 02:39 PM

En PHP, un tableau est une séquence ordonnée et les éléments sont accessibles par index ; un objet est une entité avec des propriétés et des méthodes, créée via le mot-clé new. L'accès au tableau se fait via l'index, l'accès aux objets se fait via les propriétés/méthodes. Les valeurs du tableau sont transmises et les références d'objet sont transmises.

See all articles