Java 为什么我们要创建这样的对象变量?

Java 为什么我们要创建这样的对象变量?,java,Java,我是Java新手,我被告知要创建如下对象变量: Integer a = new Integer(2); Integer a = 2; 而不是像这样: Integer a = new Integer(2); Integer a = 2; 有人能解释为什么创建对象变量是第二种坏方法吗? 编辑:我在这里添加这个,因为我得到的答案不一 我应该在什么时候使用哪种方法?第二种方法实际上更好,因为它会隐式调用。从文档中: 返回表示指定的int值的整数实例。如果不需要新的Integer实例,通常应优先使

我是Java新手,我被告知要创建如下对象变量:

Integer a = new Integer(2);
Integer a = 2;
而不是像这样:

Integer a = new Integer(2);
Integer a = 2;
有人能解释为什么创建对象变量是第二种坏方法吗? 编辑:我在这里添加这个,因为我得到的答案不一
我应该在什么时候使用哪种方法?

第二种方法实际上更好,因为它会隐式调用。从文档中:

返回表示指定的
int
值的整数实例。如果不需要新的
Integer
实例,通常应优先使用此方法而不是构造函数
Integer(int)
,因为此方法可能通过缓存频繁请求的值来产生显著更好的空间和时间性能。此方法将始终缓存-128到127(含)范围内的值,并且可能缓存此范围之外的其他值

(我的重点。)


另请参见:

谁说第二条路不好?你对此有什么参考资料吗?好吧,问题是它是关于创建对象还是关于
Integer
的特例
Integer
s介于-128和127之间(含128和127),需要缓存,因此使用
Integer a=2
并不总是创建对象。new关键字实例化给定类型的新对象。一个整数的赋值只有在它被自动装箱的情况下才有效。这两者的作用大致相同。但在我看来,第二个更好,因为它更容易输入,可读性更强,而且@arshajii在他的回答中也提到了好处(我不明白为什么被否决)。这并不能回答你的问题,但既然你说你是Java新手,你可能会感到困惑。在大多数情况下,你根本不应该创建一个
Integer
对象,而是应该使用原语类型
int
(即
inta=2;
)。谢谢你的强调,我不知道该怎么做。你能不能简化解释,因为我不明白你的意思你缺少一个源代码。这真的让我很困扰。@maio290消息来源是链接的……不,消息来源没有给出这样做的原因。这是在这里发现的…@maio290虽然这当然很重要,但我真的认为这与这个问题没有直接关系。消息来源清楚地描述了为什么这个替代方案更好,这最终是问题的关键。在任何情况下,我也可以引用该链接。