为什么Java原始数据类型不是Java数据类型?

时间:2009-06-09 13:18:52

标签: java types primitive-types

我有一个问题,为什么Java原始数据类型不仅仅被称为“Java数据类型”或类似的东西?

9 个答案:

答案 0 :(得分:18)

因为Java的数据类型多于primitives。原始数据类型是:

  • byte
  • short
  • int
  • long
  • float
  • double
  • boolean
  • char

非基元的数据类型是引用数据类型,它是对objects的引用。

一些例子是:

  • String
  • Integer
  • ArrayList
  • Random
  • JFrame

以下是两种类型之间差异的简单示例:

int i1 = 10;
Integer i2 = Integer.valueOf(10);

int i1是原始数据类型int的变量,原始int值为10.

Integer i2是一个参考数据类型为Integer的变量,引用包含值Integer的{​​{1}}对象。

答案 1 :(得分:13)

alt text

答案 2 :(得分:4)

区分它们和Objects

答案 3 :(得分:2)

因为Java中有两类类型。

来自Java Language Specification, CHAPTER 4: Types, Values, and Variables

Java编程语言的类型分为两类:基本类型和引用类型。基本类型(§4.2)boolean类型和数字类型。数字类型是整数类型byteshortintlongchar,以及浮点类型floatdouble。引用类型(§4.3)是类类型,接口类型和数组类型。还有一种特殊的null类型。对象(§4.3.1)是动态创建的类类型实例或动态创建的数组。引用类型的值是对对象的引用。所有对象(包括数组)都支持类Object (§4.3.2)的方法。字符串文字由String个对象(§4.3.3)表示。

答案 4 :(得分:1)

将它们与对象数据类型区分开来。

答案 5 :(得分:1)

因为reference types也可以被视为数据类型。基元被认为是价值类型。两者都可以被视为数据类型。

答案 6 :(得分:1)

要理解原因,我认为您需要查看除Java之外的编程语言。例如:

  • 在C ++中,有原始数据类型(intdouble等),构造数据类型(struct等)和对象/引用类型。

  • 在Ada中,存在原始数据类型,以及从基元类型派生的其他数据类型;例如范围类型。

因此,我的理解是Java数据类型被描述为“原始数据类型”,以将它们放入其他语言的上下文中。它们是“数据类型”,因为它们没有对象标识,并且它们是“原始的”,因为特定类型由Java语言定义(和基础)。

答案 7 :(得分:1)

对象也是变量,因此术语"原语"用于区分这些类型。

答案 8 :(得分:0)

非原始类型称为java引用类型,它们的名称以大写字母开头。例如:Integer,Float等。对于非原语,我们可以创建实例。