2009-06-09 14 views

答えて

1

オブジェクトデータ型と区別します。

18

Javaにはprimitivesよりも多くのデータ型があるためです。プリミティブデータ型は、次のとおりです。

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

非プリミティブであり、データ型はobjectsへの参照である参照データ型です。

いくつかの例がある:ここ

  • String
  • Integer
  • ArrayList
  • Random
  • JFrame

は番目の簡単な例であります2種類のE差:10

Integer i2のプリミティブint値を参照、Integerの参照データ型の変数であると

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

int i1は、基本データ型intの変数であります値10を含むIntegerオブジェクトです。

+1

もちろん、次のようにすることもできます。 整数i2 = 10; – Joshua

+3

@ジョシュア:確かに、オートボクシングが始まるからです。カバーの背後には、プリミティブとラッパークラスの間に変換があります。 – coobird

+0

そして、もちろん: *オブジェクト –

1

reference typesもデータ型と考えることができます。プリミティブは値型と見なされます。どちらもデータ型と考えることができます。

2

Javaには2つのタイプのカテゴリがあるためです。 Java Language Specification, CHAPTER 4: Types, Values, and Variablesから

:プリミティブ型と参照型:Javaプログラミング言語の

型は2つのカテゴリに分類されます。プリミティブ型 (§4.2)は、 boolean型と数値型です。数値タイプは、整数タイプ byte, short, int, longおよび char、および浮動小数点タイプ floatおよび doubleです。参照タイプ (§4.3)は、クラスタイプ、インタフェースタイプ、および配列タイプです。特別なnull型もあります。オブジェクト (§4.3.1)は、動的に作成されたクラスタイプのインスタンスまたは動的に作成された配列です。参照型の値は、オブジェクトへの参照です。配列を含むすべてのオブジェクトは、クラス Object (§4.3.2)のメソッドをサポートしています。文字列リテラルは、 Stringオブジェクト (§4.3.3)で表されます。
13

alt text

0

非プリミティブ型は、Javaの参照型と呼ばれ、彼らは大文字で始まる名前を持っています。例:Integer、Floatなど。非プリミティブの場合、インスタンスを作成できます。

1

理由を理解するために、Java以外のプログラミング言語を調べる必要があると思います。たとえば:Cで

  • ++、プリミティブデータ型(intdoubleなど)、構成されたデータ型(struct、等)及びオブジェクト/参照型があります。

  • Adaには、プリミティブ型と、プリミティブ型から派生した他のデータ型があります。例えば範囲タイプ。

したがって、私の理解では、Javaデータ型は他の言語のコンテキストに入れるための「プリミティブデータ型」として記述されています。それらはオブジェクトアイデンティティーを持たないという意味での "データ型"であり、特定の型がJava言語によって定義され(そして基本的に)Java言語の基本であるという意味では「プリミティブ」です。

1

オブジェクトも変数であるため、「プリミティブ」という用語はこれらの型を区別するために使用されます。

関連する問題