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!