【发布时间】:2018-06-26 12:49:08
【问题描述】:
我对 Java 中的数据类型感到困惑。我在 Internet 上看到很多将 Java 中的数据类型表示为一棵树的图像,这让我对我过去的想法感到犹豫。这些树的一个示例如下所示:
所以,在另一个 SO post 中,Buhake Sindi 指出:
Boolean 是原始类型的包装器
按照前面Java中数据类型的树形表示,我的问题是:
- 原始数据类型的包装器也是原始数据类型吗?例如 Boolean、Integer、Character。
- Object 数据类型应该在树中的什么位置?据我了解,Object 是一个内存区域,可以包含 Java 中的任何类型;从原语到程序员创建的类。因此,Object 可能包含原始数据类型和非原始数据类型。这是真的吗?
【问题讨论】:
-
... 包装器包装原语。他们不是原始人。基元明确地不是对象;这就是为什么它们被称为原语,以及为什么它们有包装器。提供的对象层次结构表明原始包装器具有自己的继承树。请注意,并非“原始”标题下的所有内容实际上都是类名——但有些是,这使得它成为一个设计不佳的文档。
-
包装器是对象,不是基元,但它们可能会根据需要拆箱成基元。
-
不,该图具有误导性:叶子是基元,上面是基元的包装器-“数字”和“浮点”也不是类。