概述
1.int是java中一种基本数据类型,Integer是int的包装类型(引用类型)
默认值:int i=0; Integer i=null;
2.int实例不需要实例化即可使用,而Integer变量需要实例化才能使用,但是java中有自动装箱、拆箱的功能,所以Integer num=200;的写法实际上也是实例化;
3.int 变量和Integer变量的==比较:
(1)由于Integer 变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量用==比较永远不相等;new生成的是两个对象内存地址,==比较的是内存地址;
Integer num1=new Integer(100);
Integer num2=new Integer(100);
num1==num2; //falsse
==比较的是地址
(2)Integer变量和int 变量比较时,只要两个变量的值是相等的,则结果为(包装类Integer和基本数据类型int比较时,java会自动拆箱为int,而后进行比较,实际上就变为两个int变量的比较)。
(3)非new生成的Integer变量和new Integer()生成的变量比较时,结果为false(非new生成的Integer 变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者正在内存中地址不同)
(4)对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127之间,则比较为true,否则为false,
因为java在编译非new生成的Integer对象的时候,实际上是调用了Integer类的静态方法 Integer.valueOf()。
public class Test2 {
public static void main(String[] args) {
int a=100;
int b=100;
Integer c=new Integer(100);
Integer d=new Integer(100);
Integer e=100;
Integer f=100;
System.out.println(a==b);
System.out.println(c==d);
System.out.println(e==f);
System.out.println(a==c);
System.out.println(a==e);
System.out.println(c==e);
}
}
最后
以上就是自信方盒为你收集整理的【java】int和integer区别的全部内容,希望文章能够帮你解决【java】int和integer区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复