Principes de base de Java : opérateurs de comparaison

Les opérateurs d'opération introduits dans l'article précédent, cet article introduit les opérateurs de comparaison.

I. Aperçu

Il existe généralement les opérateurs de comparaison suivants en Java :

opérateur exemple expliquer
> x > y Renvoie vrai si x est supérieur à y.
>= x >= y Renvoie true si x est supérieur ou égal à y.
< x < y Renvoie vrai si x est inférieur à y.
<= x <= y Renvoie true si x est inférieur ou égal à y.
== x == y Renvoie true si x est égal à y.
!= x != y Renvoie vrai si x et y ne sont pas égaux.
exemple x instance de y Renvoie true si x est de la même classe que y ou une sous-classe de y.

Exemple de code :

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/1 16:44
 * @description:
 */
public class Four {

    public static void main(String[] args) {
        
        int a = 100;
        double b = 100.001D;

        if (b > a) {
            System.out.println("b > a 为" + (b > a));
        }

        if (b >= a) {
            System.out.println("b >= a 为" + (b >= a));
        }

        if (a < b) {
            System.out.println("a < b 为" + (a < b));
        }

        if (a <= b) {
            System.out.println("a <= b 为" + (a <= b));
        }
    }
}

Résultats du :

Quant à la comparaison de taille, je crois que tout le monde connaît le résultat, donc je ne l'expliquerai pas ici.

2. Utilisez == et !=

utiliseret != Remarque : les types de données Java sont grossièrement divisés en deux types : les types primitifs et les types de référence . utilisé dans les types primitifset != sont corrects, mais soyez prudent lorsque vous les utilisez sur des types de référence.

==!= Faites attention lorsque vous l'utilisez sur un type de référence : vous ne comparez pas la valeur détenue par l'objet, mais si le référent de la référence de l'objet est le même. Si vous souhaitez comparer la valeur détenue par l'objet, vous peut utiliser la méthode equals.

Même valeur, même référence :

Les valeurs sont les mêmes, mais les références sont différentes :

Passons directement au code :

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/1 17:14
 * @description:
 */
public class Five {

    public static void main(String[] args) {
        StringBuffer x = new StringBuffer("xyz");
        StringBuffer y = x;
        System.out.println("x和y比较为" + (x == y));

        StringBuffer z = new StringBuffer("xyz");
        StringBuffer w = new StringBuffer("xyz");
        System.out.println("z和w比较为" + (z == w));
    }
}

Résultats du :

Explication du code :

  • Créez un objet x en utilisant le nouvel opérateur.
  • L'utilisation de l'opérateur d'affectation = copie l'objet x vers l'objet y, dans ce cas il suffit de copier les informations de référence de x dans y au lieu de réallouer la zone de y dans la zone mémoire.
  • La comparaison de x et y avec l'opérateur == renvoie true car les adresses de référence sont les mêmes.
  • L'objet z est créé à l'aide de l'opérateur new.
  • L'objet w est créé à l'aide de l'opérateur new.
  • La comparaison de z et w avec l'opérateur == renvoie faux car la valeur abc est la même mais a une adresse de référence différente.

3. Utilisation de instanceof

instanceof est un opérateur qui teste si l'opérande de gauche appartient à la même classe ou sous-classe que l'opérande de droite. L'opérande de gauche peut être n'importe quelle expression de référence d'objet (variable, etc.) et l'opérande de droite peut être une classe, une interface ou type de tableau.

Démontrons-le à travers le code :

père:

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/1 17:38
 * @description:
 */
public class Six {

    public static void main(String[] args) {
        SixSub sub = new SixSub();

        if (sub instanceof Six) {
            System.out.println("sub属于Six类");
        } else {
            System.out.println("sub不属于Six类");
        }
    }
}

Sous-classe :

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/1 17:38
 * @description:
 */
public class SixSub extends Six {
}

Exécutez la méthode principale de la classe parent :

Explication du code :

  • Déclarez et générez une variable objet sub dont la valeur est de classe SixSub.
  • Vérifiez si la variable objet sub appartient à la même classe ou à une sous-classe de la classe Six à l'aide de l'opérateur instanceof. Renvoie true car sub a le type de données SixSub class est une sous-classe de Six class.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43025343/article/details/132215457
conseillé
Classement