gpt4 book ai didi

java - 将原始数据类型转换为对象时,应该强制转换还是创建新对象?

转载 作者:行者123 更新时间:2023-12-02 03:50:54 27 4
gpt4 key购买 nike

这可能会打破讨论与回答规则,但我认为有一种首选的做事方式。

--

假设您需要将原始数据类型转换为对象。我们以 int --> Integer 为例。您可以通过类型转换或直接创建一个新对象来做到这一点。例如:

int a = 5; int b = 10;
Integer c = new Integer(a);
Integer d = (Integer) b;

哪个是更好的方法,a --> c 还是 b --> d?我怀疑它们执行相同的操作,那么通常使用哪一个?

提前致谢。

最佳答案

Let's say you need to convert a primitive data type to an Object. Let's use int --> Integer as an example. You can do this by casting or straight up making a new Object. For example:

int a = 5; int b = 10;
Integer c = new Integer(a);
Integer d = (Integer) b;

Which is the better way to do it, a --> c or b --> d? I suspect they perform the same operation, so which one is usually used?

版本 5 及更高版本中的 Java 编译器执行自动装箱,以在原始值与其相应的装箱对象之间进行转换。自动装箱模糊但不会消除原始值和对象之间的区别。

不鼓励使用以下行:

Integer c = new Integer(a);

这是因为总是创建新对象并防止缓存的 Integer 对象被重用。

这行代码由 Java 编译器转换:

Integer d = (Integer) b;

相反,这一行变成了

Integer d = Integer.valueOf(b);

如果您从作业中完全省略强制转换,则会得到以下代码。使用 valueOf() 函数将原始值装箱到其相应的对象中。这是向对象分配原始值的首选方法,因为这允许 JVM 重用频繁缓存的对象。

关于java - 将原始数据类型转换为对象时,应该强制转换还是创建新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35879970/

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