javaプログラム基本問題port1

1. プリミティブ型として正しいものを選びなさい。(2つ選択)

A. Integer

B. double

C. Number

D. byte

E. Character

Javaのプリミティブ型に関する特徴

1. プリミティブ型(Primitive types)

  • プリミティブ型は、Javaの基本データ型で、オブジェクトではなく、直接値を保持します。代表的なプリミティブ型には次のものがあります:
    • int(整数)
    • double(小数)
    • boolean(真偽値)
    • char(文字)
  • 軽量でパフォーマンスが高い: プリミティブ型はメモリ使用量が少なく、処理が高速です。特に、大量の数値を扱う場合にプリミティブ型を使うと効率的です。

2. ラッパークラス(Wrapper classes)

  • ラッパークラスは、プリミティブ型の値をオブジェクトとして扱えるようにするためのクラスです。プリミティブ型をオブジェクトとして扱うための特別な参照型とも言えます。各プリミティブ型に対応するラッパークラスが用意されています:
    • intInteger
    • doubleDouble
    • booleanBoolean
    • charCharacter
  • オブジェクトとして扱える: ラッパークラスはオブジェクトであり、コレクション(リストやセットなど)に保存したり、メソッドに渡したりできます。プリミティブ型はコレクションにそのまま格納できないため、ラッパークラスが必要になります。
  • メモリ使用量が多く、若干遅い: ラッパークラスはオブジェクトであるため、プリミティブ型に比べてメモリを多く消費し、処理も少し遅くなります。

具体例での違い

たとえば、int型の変数は値を直接メモリに保持しますが、Integerクラスはその値をオブジェクトとして扱います。

  • プリミティブ型 int の例: int a = 10; int b = 20; int sum = a + b; // 足し算は直接値で行われるため高速
  • ラッパークラス Integer の例: Integer a = 10; Integer b = 20; Integer sum = a + b; // オブジェクト同士の操作が行われる

上記のように、Integerはオブジェクトなので、オブジェクトの作成や操作のための追加コストが発生します。コレクションフレームワーク(リストやマップなど)を使用する際は、プリミティブ型を直接扱えないため、ラッパークラスを使いますが、単純に数値演算を行う場合は、プリミティブ型を使うほうが効率的です。

A. Integer

解説: IntegerはJavaのラッパークラスであり、プリミティブ型のintをオブジェクトとして扱うために使用されます。プリミティブ型そのものではありません。

B. double

解説: 正解。doubleはJavaのプリミティブ型の一つで、浮動小数点数を扱います。倍精度の浮動小数点数型であり、数値計算に用いられます。

C. Number

解説: NumberはJavaの抽象クラスであり、IntegerDoubleなどの数値クラスの親クラスです。プリミティブ型ではありません。

D. byte

解説: 正解。byteはJavaのプリミティブ型で、8ビットの符号付き整数を扱います。数値を非常に小さい範囲(-128から127まで)で格納するために使用されます。

E. Character

解説: CharacterはJavaのラッパークラスであり、プリミティブ型のcharをオブジェクトとして扱うために使用されます。charがプリミティブ型です。

参考書籍

コメント