整数a = 5和new Integer(5)有什么区别?

如果我写下面的代码(在java中):

Integer a =new Integer(5);

Integer b=new Integer(5);

if(a==b){

System.out.println("In ==");

}

if(a.equals(b)){

System.out.println("In equals");

}

我的输出是:“等于”,但是如果我将第一行和第二行更改为->

Integer a =5;

Integer b=5;

那么我的输出是:

In == 

In equals

那么创建Integer对象有什么区别?当我们这样做时如何创建它Integer a =5

如果我创建Integer a=5并创建另一个对象,是否意味着a和b对象引用相同的对象Integer b=5

回答:

Integer a = 5; 称为自动装箱,编译器将此表达式转换为实际

Integer a = Integer.valueOf(5);

对于较小的数字,默认情况下为-128到127,Integer.valueOf(int)不会创建Integer的新实例,而是从其缓存中返回一个值。所以在这里

Integer a = 5;

Integer b= 5;

ab指向相同的Object和a == bis true

以上是 整数a = 5和new Integer(5)有什么区别? 的全部内容, 来源链接: utcz.com/qa/407532.html

回到顶部