gpt4 book ai didi

java - 为什么 Java 中出现了包装类概念?

转载 作者:行者123 更新时间:2023-11-30 03:30:09 24 4
gpt4 key购买 nike

我知道什么是包装类,它们将原始类型(例如 int、double 等)包装到各自类的对象。

但我想知道一个可以实际解释我的 Java 代码示例。

使用包装类和不使用包装类都会做什么。

最佳答案

当 Java 语言被“发明”时,人们认为使用基本类型 int、long、... 可以避免性能问题。 15 多年前,还没有高效的 JIT 编译器;因此,如果您必须为 10000 个整数创建一个数组……或为 10000 个 Integer 对象创建一个数组,则会产生巨大的差异。

另一方面,Java 希望成为一种面向对象的语言。因此,这些原始类型附带了相应的类。从某种意义上说,你是正确的:如果没有原始 tpyes,只有 Integer、Long 等,Java 类型系统会更加一致、简单得多......但早在 1997 年,这个简单的类型系统就会在性能方面一直“昂贵”。不幸的是,人们并没有考虑在字节码中允许原始类型……但在 Java 语言本身中却没有考虑到它们(以及编译器在内部将 Integer 转换为 int)。

现在的主要用途是 Java 编译器进行自动装箱(原始类型和“基于对象”类型之间的自动转换);所以你可以写这样的东西:

Map<Integer, String> someMap = ...
someMap.put(5, "string")

关于java - 为什么 Java 中出现了包装类概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29230425/

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