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

Java:这两个包装器类语句之间的区别,java,wrapper,Java,Wrapper,我是个编程新手。告诉我两者的区别 整数x=59和整数x=新整数(59) 它们基本上都做相同的事情,我得到的输出是两种方式 public class WrapperClass { public static void main(String args[]) { Integer x= 59; // byte y= x.byteValue(); System.out.println(y); } } 及 差别不大。自动装箱(I

我是个编程新手。告诉我两者的区别
整数x=59
整数x=新整数(59)
它们基本上都做相同的事情,我得到的输出是两种方式

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


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


为了确保:自动装箱/
valueOf
在使用两个相等的值调用它两次时可能会给您相同的对象引用(至少如果您的值介于-128和127之间),但这仍然使得通过
==
比较两个整数对象是一个非常非常糟糕的主意,差别不大。自动装箱(
Integer x=59;
)将调用
Integer.valueOf(59)而另一个方法调用构造函数。对缓存的影响很小(valueOf可能会为两个相等的值提供相同的对象引用,new不会),但仅此而已

为了确保:自动装箱/
valueOf
在使用两个相等的值调用它两次时可能会给您相同的对象引用(至少如果您的值介于-128和127之间),但这仍然使得通过
==

查找来比较两个整数对象是一个非常非常糟糕的主意。请参阅:查找。请参阅:
public class WrapperClass
{
    public static void main(String args[]) 
    {
        Integer x = new Integer (10);
        byte y= x.byteValue();
        System.out.println(y);
    }
}