Java 为什么像Boolean等包装类的对象直接获取值而不进行初始化,但对象的属性是不允许的?

Java 为什么像Boolean等包装类的对象直接获取值而不进行初始化,但对象的属性是不允许的?,java,Java,为什么像Boolean等包装类的对象直接获取值而不进行初始化,但不允许对象的属性? 代码: 您的意思是,为什么您可以只使用字节b=25而不显式地将字节对象初始化为字节b=new Byte(25),从而使用方法而不从包装器类对象引发NullPointerException 好吧,如果你是这么想的,那是因为自从Java1.5以来,给包装器引用赋值就可以在不显式实例化对象的情况下完成。这称为自动装箱,它隐式地创建包装器对象实例并为其赋值 这样:Byte b=25与Byte b=new Byte(25)

为什么像Boolean等包装类的对象直接获取值而不进行初始化,但不允许对象的属性?
代码:


您的意思是,为什么您可以只使用字节b=25而不显式地将字节对象初始化为字节b=new Byte(25),从而使用方法而不从包装器类对象引发NullPointerException

好吧,如果你是这么想的,那是因为自从Java1.5以来,给包装器引用赋值就可以在不显式实例化对象的情况下完成。这称为自动装箱,它隐式地创建包装器对象实例并为其赋值


这样:
Byte b=25
Byte b=new Byte(25)
相同。如果在字节范围内赋值,则与装箱版本有一些差异会影响通过引用比较包装器值的结果。。但是,这是一件完全不同的事情xD..

好吧,阿披舍克,构造函数初始化对象的目的是做任何准备工作,让对象活着。因为包装类和字符串只保存数据,所以将它们初始化的唯一准备就是为它们提供必要的值。因此,我们实际上不需要为他们调用new

我看不到您的示例中不允许的任何内容。你能举例说明你的意思吗?你的问题一点也不明显!你不必把整个问题写在标题里,只在正文里写代码!有一些你可能关心的事情。
class TestByte{ 
   public static void main(String[] a) { 
      Byte b=125; System.out.println(b);
   }
}