Maison >Java >javaDidacticiel >Quelle est la différence entre int et entier en Java ?

Quelle est la différence entre int et entier en Java ?

青灯夜游
青灯夜游original
2019-12-26 16:26:464051parcourir

La différence entre int et entier en Java

QuantityInt est le type de données de base et les variables int stockent valeurs numériques. ;Integer est un type de données de référence, qui est en fait un objet Integer stocke l'adresse de l'objet de référence .

● La valeur par défaut de int est 0 et la valeur par défaut de Integer est nulle

● Le type int stocke directement les valeurs et Integer doit instancier l'objet ; et pointez vers l'adresse de l'objet.

[Apprentissage recommandé : Tutoriel vidéo Java]

Comparaison de la mémoire occupée par int et Integer :

Objets Integer occupera plus de mémoire. Integer est un objet et doit stocker les métadonnées de l'objet. Mais int est un type de données primitif, il prend donc moins de place.

La variable Integer générée par non-new est comparée à la variable générée par new Integer(), et le résultat est faux.

/**
 * 比较非new生成的Integer变量与new生成的Integer变量
 */public class Test {
    public static void main(String[] args) {
        Integer i= new Integer(200);
        Integer j = 200;
        System.out.print(i == j);        //输出:false
    }
}

Parce que la variable Integer générée par non-new pointe vers l'objet dans le pool de constantes Java, tandis que la variable générée par new Integer() pointe vers l'objet nouvellement créé dans le tas, les adresses dans la mémoire des deux sont différents. Le résultat est donc faux.

Comparez deux objets Integer générés non nouveaux

Si les valeurs des deux variables sont comprises entre l'intervalle [-128,127], le résultat de la comparaison est vrai ; sinon, le résultat est faux.

/**
 * 比较两个非new生成的Integer变量
 */public class Test {
    public static void main(String[] args) {
        Integer i1 = 127;
        Integer j1 = 127;
        System.out.println(i1 == j1);//输出:true
        Integer i2 = 128;
        Integer j2 = 128;
        System.out.println(i2 == j2);//输出:false
    }
}

Lorsque Java compile Integer i1 = 127, il sera traduit en Integer i1 = Integer.valueOf(127).

La variable entière (qu'elle soit générée par new ou non) est comparée à la variable int

Tant que les valeurs des deux variables sont égales, le résultat est vrai.

/**
 * 比较Integer变量与int变量
 */public class Test {
    public static void main(String[] args) {
        Integer i1 = 200;
        Integer i2 = new Integer(200);        int j = 200;
        System.out.println(i1 == j);//输出:true
        System.out.println(i2 == j);//输出:true
    }
}

Lorsque la variable Integer enveloppée est comparée à la variable int du type de données de base, l'Integer sera automatiquement décompressé en int puis comparé. En fait, les deux variables int sont comparées. , donc ils sont vrais.

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