Maison > Java > javaDidacticiel > le corps du texte

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

青灯夜游
Libérer: 2019-12-26 16:26:46
original
3985 Les gens l'ont consulté

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
    }
}
Copier après la connexion

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
    }
}
Copier après la connexion

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
    }
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal