整数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;
a
并b
指向相同的Object和a == b
is true
。
以上是 整数a = 5和new Integer(5)有什么区别? 的全部内容, 来源链接: utcz.com/qa/407532.html