Comparaison équivalente de la classe wrapper Java et du type primitif

Dans un certain projet, la comparaison de valeur égale entre la classe wrapper et le type primitif était erronée, j'ai donc écrit un article pour les nouveaux arrivants.

DemoApp.java


public class DemoApp {
    
    public static void main(String[] args) {
        Integer x = 999999;
        Integer y = 999999;
        int z = 999999;

        //De la classe wrapper==Comparaison
        if (x == y) {
            System.out.println("same");
        } else {
            System.out.println("other");
        }

        //Comparaison par la méthode equals de la classe wrapper
        if (x.equals(y)) {
            System.out.println("same");
        } else {
            System.out.println("other");
        }

        //Classe de wrapper et type primitif==Comparaison
        if (x == z) {
            System.out.println("same");
        } else {
            System.out.println("other");
        }
        
        //Comparaison de la classe wrapper et de la méthode equals de type primitif
        if (x.equals(z)) {
            System.out.println("same");
        } else {
            System.out.println("other");
        }
    }
}

Résultat d'exécution


other
same
same
same

C'est le résultat de la définition d'une classe wrapper avec le même numéro et une variable de type primitif et de la comparaison des valeurs.

Numéro d'article conditions résultat
1 Classe wrapper et classe wrapper==Comparaison équivalente différent
2 Classe wrapper et classe wrapperequalsComparaison de valeur égale par méthode le même
3 Classe de wrapper et type primitif==Comparaison équivalente le même
4 Classe de wrapper et type primitifequalsComparaison de valeur égale par méthode le même

== détermine s'il pointe vers la même instance (objet), mais il est intéressant de noter que la classe wrapper et le type primitif sont également déterminés comme étant ** identiques **.

Recommended Posts

Comparaison équivalente de la classe wrapper Java et du type primitif
A propos des types primitifs et des types de référence Java
Comparaison des objets JavaScript et des classes Ruby
[Java] Résumé personnel des classes et méthodes (basique)
À propos des types de données Java (en particulier des types primitifs) et des littéraux
[Java] Comparaison des chaînes de caractères et && et ||
[Java] Types de variables et types
java (classe et instance)
[Java] Types de commentaires et comment les rédiger
La comparaison d'énumération est ==, et equals est bonne [Java]
J'ai résumé les types et les bases des exceptions Java
J'ai étudié les types primitifs Java
Avantages et inconvénients de Java
Méthodes et classes abstraites Java
[Pour les débutants] Explication des classes, des instances et des statiques en Java
[Java] Méthode de comparaison de chaînes de caractères et méthode de comparaison utilisant des expressions régulières
Générer un flux à partir d'un tableau de types primitifs en Java
[Java] Comparaison de vitesse de combinaison de chaînes
Comparaison du développement d'applications WEB avec Rails et Java Servlet + JSP
[Java] Divers résumés joints aux chefs de classe et aux membres
Déclaration, initialisation et types de variables Java
À propos de Biocontainers fastqc et Java
Série Java Primer (variations et types)
Types de données de base et types de référence (Java)
Java Generics (définit les classes et les méthodes)
Comparaison du temps de traitement basé sur awk, la commande shell et Java
[Java] Comparaison correcte du type String
Types de données de base et types de référence Java
Liste des types ajoutés dans Java 9
Classes et instances Java pour les débutants
[Java] Types d'exception et traitement de base
Comparaison des méthodes d'implémentation de thread en Java et de la méthode d'expression lambda
Comparaison des types sûrs à tolérance nulle, à tolérance nulle et à tolérance nulle du point de vue de la sécurité nulle
À partir de Java9, les constructeurs de classe correspondant aux types primitifs sont marqués comme obsolètes.
Java pour les débutants, les variables et les types
Concernant la comparaison d'équivalence de type de chaîne en Java
Comparaison d'Android Handler Looper et de runOnUiThread
Après 3 mois de formation Java et Spring
Programmation Java (classes et instances, méthodes principales)
Comparaison approfondie des implémentations Android et iOS
Cours et méthodes abstraits d'histoire d'apprentissage JAVA
[Introduction à Java] À propos des déclarations et des types de variables
Résumé de Java Math.random et import (calendrier)
[Java] Contenu de l'interface de collection et de l'interface de liste
Discrimination d'énum dans Java 7 et supérieur
L'histoire de la comparaison de chaînes de bas niveau en Java
À propos de l'idée des classes anonymes en Java
Efficacité de Java 3rd Edition Chapitre 4 Classes et interfaces
Chrome59 Comparaison du fonctionnement en mode normal et sans tête
J'ai comparé les caractéristiques de Java et .NET
Différences dans l'écriture des classes Java, C # et Javascript
JAVA: réalise la génération et la numérisation de divers types de codes à barres
Comparaison Java et Swift (3) Implémentation de classe / héritage de classe / conception de classe
Java permet l'extraction de texte et d'images PDF