Java:这两个包装类语句之间的区别

时间:2015-07-28 11:45:07

标签: java wrapper

我是编程的新手。告诉我两者之间的区别 WARNING: Unable to scale non-existent auto-scaling group for <ip> Successfully scaled <myapp> to 3 t2.micro instances in prod Integer x= 59; 它们基本上都做了同样的事情,而且我得到了输出。

Integer x= new Integer (59);

public class WrapperClass
{
    public static void main(String args[]) 
    {
        Integer x= 59; // 
        byte y= x.byteValue();
        System.out.println(y);
    }
}

1 个答案:

答案 0 :(得分:7)

差别不大。自动装箱(Integer x = 59;)将调用Integer.valueOf( 59 );,而另一个方法调用构造函数。对缓存有一些小的影响(valueOf可能为两个相等的值提供相同的对象引用,new不会),但不会更多。

并且只是为了确保:Autoboxing / valueOf MIGHT在用两个相等的值调用两次时给你相同的对象引用(至少如果你的值介于-128和127之间),但仍然会通过==比较两个Integer对象是一个非常非常糟糕的主意。