int和Integer区别
Posted warriors-curry
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了int和Integer区别相关的知识,希望对你有一定的参考价值。
1、int是java中的基本数据类型,而Integer是int的包装类
2、Integer变量必须实例化之后才能使用,而int则不需要
3、Integer实际是对象的引用,而int是直接存储数据值
4、Integer的默认值是null,int的默认值是0
实例:
package com.lsj.test; public class test { public static void main(String[] args) { Integer a=new Integer(100); Integer b=new Integer(100); Integer c=100; Integer i=100; Integer j=128; Integer k=128; int d=100; System.out.println(a==b); System.out.println(a==c); System.out.println(a==d);
System.out.println(c==d); System.out.println(c==i); System.out.println(j==k); } }
运行结果:
1.false
2.false
3.true
4.true
5.true
6.false
分析:1、Integer实际是对对象的引用,new生成两个Integer变量,由于内存地址不同,故始终不会相等,即结果为false;
2、不是通过new生成的Integer变量和通过new生成的Integer变量进行比较时,结果为false,因为非new生成的Integer变量会存放在常量池中,而通过new创建的Integer变量会存放在堆中。
3、int变量和Integer变量比较,实际上是值的比较,只要两个值相等,结果就为true。因为此时java会自动拆包装为int。
4、同上述3的分析一样
5、对于两个非new生成的Integer对象时,只要两个变量的值在-128和127区间内,且值相等的话,结果就为true。换句话说,只要两者值不在-128-127区间之内,结果均为false。
6、见上述5
以上是关于int和Integer区别的主要内容,如果未能解决你的问题,请参考以下文章