当前位置: 首页 > 面试题库 >

为什么在Java中有包装器类?

申屠洛华
2023-03-14
问题内容

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

但是,为什么我们首先需要包装器类?为什么不简单地在我们拥有原始类型的地方使用它们呢?


问题答案:

几种可能的原因:

  • 这样就可以有一个空值
  • 包含在集合
  • 将一般/多态与其他对象一起视为对象


 类似资料:
  • 问题内容: 在较高的层次上,我知道我们需要通过使用它们各自的包装类在Java集合中使用它们来“包装”原始数据类型,例如int和char。我想了解Java集合如何在低级询问:“为什么我们需要将原始数据类型包装为对象才能在集合中使用它们?”在此先感谢您的帮助。 问题答案: 在虚拟机级别,这是因为与引用类型(例如java.lang.Object及其派生类型)相比,原始类型在内存中的表示方式非常不同。例如

  • 问题内容: 我知道适用于一般不可变类的常见原因,即 不能改变为副作用 容易推断他们的状态 本质上是线程安全的 无需提供克隆/复制构造函数/工厂复制方法 实例缓存 无需防御副本。 但是,包装器类表示原始类型,并且原始类型是可变的。那么为什么包装器类不可变? 问题答案: 但是,包装器类表示原始类型,并且原始类型(String除外)是可变的。 首先,String不是原始类型。 其次,谈论原始类型是可变的

  • 问题内容: 输出: 输出: 注意:-128至127之间的数字为真。 问题答案: 当你使用Java编译数字文字并将其分配给Integer(大写)时,编译器将发出: 当你使用自动装箱时,也会生成此行代码。 valueOf 实现了“合并”某些数字,对于小于128的值,它将返回相同的实例。 从Java 1.6源代码的第621行: high可以使用system属性将的值配置为另一个值。 如果使用该系统属性运

  • 问题内容: 我正在查看一些代码,并遇到了一个实例,该实例后增加了一个成员变量,该成员变量是Integer的包装器类。我自己尝试过,真的很惊讶它起作用。 这会打印出来,而不是 我期望的那样。我已经浏览了语言规范,但找不到任何相关内容。谁能向我解释为何有效,以及在多个平台上是否安全?我以为这会分解成 但是很显然,规范中有些内容使其添加到最后一行之前 问题答案: 跨平台使用绝对安全。该行为在Java语言

  • 问题内容: 我正在尝试制作多个具有相同高度的正方形行(每行3个)。 我为此编写了一些HTML和CSS,但所有框都在同一行上。 这是我到目前为止的内容: 当我用此页面加载页面时,所有框都出现了,但它们都在一行上,超过了父div的100%宽度。 任何帮助深表感谢。 问题答案: flex容器的初始设置为 。 这意味着,当您创建一个伸缩容器(通过应用元素或将其应用于元素)时,所有子元素(“伸缩项”)都限于

  • 问题内容: 为什么我的组件没有使用FlowLayout包装在此JPanel中?它们只是在屏幕外运行,仅部分可见。 这就是我的全部代码(除了添加和包装框架)。我是否误解了FlowLayout?我是否必须在标签或面板上设置某种尺寸? 问题答案: 那是因为没有。我知道,很烂。 但是,您可以看看WrapLayout这是解决此问题的方法