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);
}
}