gpt4 book ai didi

java - 原始数据类型和包装数据类型的用法有何不同,包装数据类型的需求是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 08:22:03 28 4
gpt4 key购买 nike

我在网上搜索了一下,但所有的答案都只是由差异组成。我知道其中的区别,但我不了解它们在应用程序中的区别。

例如,假设我们要取两个浮点值,如果我们使用 double,我们可以很容易地使用 a==b 进行比较,而如果我们使用 Double,我们将不得不使用 a.equals(b).

最佳答案

您可以在 blog 上找到它

<强>1。首先

Double 是引用类型,因此您可以将其用作模板参数

例如:

public class Tmp<T> {
public Tmp() {
}
}

如果你想创建一个这样的类。

然后你必须传递引用类型,同时创建对象。例如

new Tmp<Integer>()

如果你创建这样的对象,你会得到一个错误:

new Tmp<int>()

<强>2。第二

仅由于包装类,才有可能进行通用数据类型编程。

例如下面的方法接受任何类型的数字(Byte、Integer、Double、Short、Float、Long、BigDecimal、BigInteger、AtomicInteger、AtomicLong)并返回Integer 添加那个数字。

public Integer add(Number a, Number b){
return a.intValue() + b.intValue();
}

<强>3。第三

在早期版本的 Java 中不支持自动装箱和自动拆箱。因此,如果您使用该版本的 Java,则可以轻松区分两者。

例如,如果您使用 Java 1.4 或更早版本,则:

Integer a = 1; // Auto Boxing(Not Works)
Integer a2 = new Integer(2); // Boxing (It Works)

<强>4。第四个

两者的存储方式也不同,原始类型存储在Stack,而引用类型存储在Heap

<强>5。第五

您可以使用该类的功能,例如将字符串解析为 Integer、Double 等,并使用相同的许可。

下面是Integer类的函数和约定

enter image description here

6.第六

您可以序列化 Integerint 则不行

7.第七话

您可以将 Integer 作为 RMI 方法传递,但 int 则不行

注意:Integerint 都可以是 RMI 参数中另一个对象的一部分,实际上在 Integer 类中,它们将值存储在 int

<强>8。第八名

int 的变量是可变的(final int 不是这种情况),而 Integer 是不可变的。当我们更改值时,它将创建新对象。

关于java - 原始数据类型和包装数据类型的用法有何不同,包装数据类型的需求是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43226665/

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