gpt4 book ai didi

java - Java 中的装箱和自动装箱有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:43:25 24 4
gpt4 key购买 nike

Java 中的装箱和自动装箱有什么区别?一些 Java 认证书籍使用了两个这样的术语。他们指的是拳击吗?

最佳答案

装箱是机制(即从intInteger);自动装箱是编译器的一项功能,它可以为您生成装箱代码。

例如,如果您编写代码:

// list is a List<Integer>
list.add(3);

然后编译器会自动为你生成装箱代码;代码中的“最终结果”将是:

list.add(Integer.valueOf(3));

关于为什么 Integer.valueOf() 而不是 new Integer() 的说明:基本上,因为 JLS 是这样说的:) 引用 section 5.1.7 :

If the value p being boxed is true, false, a byte, or a char in the range \u0000 to \u007f, or an int or short number between -128 and 127 (inclusive), then let r1 and r2 be the results of any two boxing conversions of p. It is always the case that r1 == r2.

如果您使用“纯粹的”构造函数,则无法强制执行此要求。工厂方法,例如 Integer.valueOf(),可以。

关于java - Java 中的装箱和自动装箱有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33895700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com