我是靠谱客的博主 自信方盒,最近开发中收集的这篇文章主要介绍【java】int和integer区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部