Oracle Java SE8 Silver 試験範囲その2-データ型

Java Silver

公開日:2018年3月11日

このページでは、Oracle Java SE8 Silverの試験範囲のうち、「データ型」について概要を説明します。

1.変数宣言と初期化

変数はクラス直下に宣言するメンバ変数とメソッド内に宣言するローカル変数があります。

変数は「[修飾子] データ型 変数名;」という形で宣言します。修飾子はメンバ変数の場合に付すことができます。

変数に値を代入することを「初期化」といい、「変数名 = 値;」の形で記述します。

なお、変数宣言と初期化は同時に1文で記述することもできます。

2.基本データ型と参照型の違い

データ型は「基本データ型」と「参照型」に分類することができます。

基本データ型には、数字や文字などを扱います。具体的には、整数を扱う「byte,short,int,long」、小数を扱う「float、double」、文字を扱う「char」、真偽を扱う「boolean」があります。

参照型には、文字列を扱うString型などがあります。また、クラスそのものも参照型です。

両者の違いとして、変数を初期化した場合に、基本データ型では、変数は値そのものを表しますが、参照型では、変数は値が格納された場所を表します。

3.フィールド読み取りと書き込み理解

クラス直下に宣言する変数はメンバ変数ですが、「フィールド」とも呼ばれます。

フィールドには、「インスタンス変数」と「static変数」の2種類が存在します。

インスタンス変数は、オブジェクト毎に存在する変数であり、「[修飾子] データ型 インスタンス変数名;」の形で宣言します。

static変数は、クラスに対して存在する変数をいい、「static データ型 static変数名」の形で宣言します。

両者は読み取りと書き込みの方法が異なります。

インスタンス変数を別クラスから呼び出すには、インスタンス化を行い、「オブジェクト名.インスタンス変数名」の形で呼び出します。これに対して、static変数を呼び出すには、「クラス名.static変数名」の形で呼び出すことができます。

また、変数の書き込みですが、インスタンス変数の場合には、オブジェクト毎に書き込みが行われます。従って一つのインスタンス変数に対して複数の書き込みが存在します。これに対して、static変数の場合には、クラスに対して一つのstatic変数が存在するため、オブジェクト毎に書き込みを行ったとしても1つのstatic変数に対して書き込みが更新されることになります。

4.オブジェクトのライフサイクル

「オブジェクト」とは、クラスという設計図を基に生成された実態をいいます。オブジェクトを生成することを「インスタンス化」といいます。インスタンス化を行うには「データ型 変数名 = new クラス名();」という形で記述します。

インスタンス化することによって、インスタンス化したクラスの変数やメソッドを扱うことができます。例えばメソッドを呼び出す場合には「変数名.メソッド名();」という形で記述します。

不要となったオブジェクトはガベージコレクタの対象とすることでメモリを解放します。オブジェクトをガベージコレクタの対象にするには、オブジェクトにnullを代入します。または、変数を他のオブジェクトに割り当てたり、finalize()メソッドを使用することでもガベージコレクタの対象にすることができます。

5.ラッパークラスの理解

「ラッパークラス」とは、参照型で基本データ型と同様の値を扱いたい場合に使用するクラスをいいます。

例えば、基本データ型のintを扱いたい場合には、ラッパークラスの「Integer」を使用します。

ラッパークラスは、例えば、ArrayListクラスを使用して、配列を表す場合に基本データ型の値を使用したい場合などに利用されます。