我有一个问题,为什么 Java 原始数据类型不只是称为“Java 数据类型”或类似的东西?
9 回答
因为 Java 有更多的数据类型而不仅仅是原语。原始数据类型有:
byte
short
int
long
float
double
boolean
char
非原始数据类型是引用数据类型,它是对对象的引用。
一些例子是:
String
Integer
ArrayList
Random
JFrame
这是两种类型之间差异的简单示例:
int i1 = 10;
Integer i2 = Integer.valueOf(10);
int i1
是原始数据类型的变量,int
原始int
值为 10。
Integer i2
是一个引用数据类型为 的变量Integer
,引用一个Integer
包含该值的对象10
。
要区分它们和Objects。
因为Java中有两类类型。
Java 编程语言的类型分为两类:原始类型和引用类型。原始类型(第 4.2 节)是boolean
类型和数字类型。数字类型是整数类型byte
、short
、int
、long
和char
,以及浮点类型float
和double
。引用类型(第 4.3 节)是类类型、接口类型和数组类型。还有一种特殊的空类型。对象(第 4.3.1 节)是类类型的动态创建实例或动态创建的数组。引用类型的值是对对象的引用。所有对象,包括数组,都支持类的方法Object
(§4.3.2). 字符串文字由String
对象表示(§4.3.3)。
将它们与对象数据类型区分开来。
因为引用类型也可以被认为是数据类型。原语被认为是值类型。两者都可以被认为是一种数据类型。
对象也是变量,因此术语“原始”用于区分这些类型。
要了解原因,我认为您需要查看 Java 以外的编程语言。例如:
在 C++ 中,有原始数据类型(
int
、double
等)、构造数据类型(struct
等)和对象/引用类型。在 Ada 中有原始数据类型,以及从原始类型派生的其他数据类型;例如范围类型。
所以,我的理解是,Java 数据类型被描述为“原始数据类型”,以便将它们放入其他语言的上下文中。它们是“数据类型”,因为它们没有对象标识,它们是“原始的”,因为特定类型由 Java 语言定义(并且是 Java 语言的基础)。
非原始类型称为 java 引用类型,它们的名称以大写字母开头。例如:整数、浮点数等。对于非基元,我们可以创建实例。