为什么Java原始数据类型不是Java数据类型?
我有一个问题,为什么Java原始数据类型只是被称为“Java数据类型”或类似的东西?
因为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
,引用包含值10
的Integer
对象。
区分它们和物体 。
因为Java中有两类类型。
从Java语言规范,第4章:类型,值和变量 :
Java编程语言的类型分为两类:基本类型和引用类型。 基本类型(§4.2)是
boolean
类型和数字类型。 数值类型是整数类型byte
,short
,int
,long
和char
,浮点类型是float
和double
。 引用类型(第4.3节)是类类型,接口类型和数组类型。 还有一种特殊的null类型。 对象(第4.3.1节)是动态创建的类类型实例或动态创建的数组。 引用类型的值是对象的引用。 所有对象(包括数组)都支持Object
类(第4.3.2节)的方法 。 字符串文字由String
对象表示(§4.3.3) 。
将它们与对象数据类型区分开来。
因为引用类型也可以被认为是数据类型。 基元被认为是价值类型。 两者都可以被认为是数据类型。
要了解原因,我认为您需要查看除Java之外的编程语言。 例如:
-
在C ++中,有原始数据类型(
int
,double
等),构造数据类型(struct
等)和对象/引用类型。 -
在Ada中,存在原始数据类型,以及从基元类型派生的其他数据类型; 例如范围类型。
因此,我的理解是Java数据类型被描述为“原始数据类型”,以将它们放入其他语言的上下文中。 它们是“数据类型”,因为它们没有对象标识,并且它们是“原始的”,即特定类型由Java语言定义(和基础)。
对象也是变量,因此术语“原始”用于区分这些类型。
非原始类型称为java引用类型,它们的名称以大写字母开头。 例如:Integer,Float等。对于非原语,我们可以创建实例。