Javaコラム Javaエンジニアのためのお役立ちコラム

Javaで必須のデータ型とは?Javaで利用されるデータ型の種類と使い方

 
Javaで必須のデータ型とは?Javaで利用されるデータ型の種類と使い方
SE
Javaのデータ型にはどのようなものがあるのでしょうか。
PM
基本データ型と参照型があります。

Javaで必須のデータ型とは?


Javaのデータ型には基本データ型と参照型があります。データ型はプログラミング言語を利用するうえで欠かせない要素の一つで、設定した変数においてどのようなデータを扱うかを指定します。

変数は数学の方程式等で使用されるxやyという文字と同様に考えることができるもので、ある事柄の範囲を文字で仮に表したものです。ただしJavaで以下のように記述した場合、「x」がイコール「1」という意味ではなく、「x」に「1」を代入するという意味になります。

上記のコードでxの前に記述した「int」が基本データ型の一つとなります。

基本データ型は別名プリミティブ型とも呼ばれ、変数に入れられた値自体の型を直接指定するものです。対して参照型は、値が格納された場所に対して指定するデータ型です。

参照型はプログラミングに慣れていないとイメージしづらいところがありますが、例えばイヌ、ネコ、サル、ライオンというデータを扱いたい場合、それぞれ0、1、2、3と採番された場所に格納することになります。イヌというデータを呼び出す時は「0」を参照します。

参照型を含めてしまうとJavaにおけるクラスについての説明が必要となってくるため、今回は基本データ型に絞って紹介していきます。今回紹介する基本データ型以外が全て参照型となるため、まずはJavaの基本データ型をしっかり押さえておくことをおすすめします。

Javaで利用されるデータ型の種類と使い方について


Javaのデータ型は、必ず変数の前に記述します。またJavaで扱う基本データ型は全部で8種類で、それぞれ用途や値の取り扱い可能範囲が異なります。それぞれの基本データ型の意味と、コーディング例を紹介します。

なおJavaの基本データ型は、指定されたデータ型が必要とするbit数分のデータ領域を確保し、その領域内に値を保存するという仕組みです。bit数については、これから挙げる基本データ型の分別にも役立つ概念なので、意識しながら見ていきましょう。

コーディング例に関しては、インポートやクラスの記述を省いているので、あらかじめご注意ください。

boolean(1bit)

true、falseという二択の論理値のみを格納できるデータ型です。

コンピュータが直接理解できるものは0か1のみです。日本語やグラフィック等も突き詰めれば全て0か1で解釈されています。この0や1が最小単位の1bitです。trueは「1」、falseは「0」でそれぞれ表すことができるので領域は1bitで済みます。

なおbooleanは、必ず初期値としてtrue、falseのいずれかを格納しておく必要があります。

以下はbooleanを使ったコーディング例です。

上記では、isAnimalに「false」が格納されているため、elseの方の処理に進み、「それは動物ではないです。」が出力されます。

byte(8bit)、short(16bit)、int(32bit)、long(64bit)

いずれも整数値を扱う際の基本データ型です。byteは-128〜127、shortは-32768〜32767、intは-2147483648〜2147483647、longは-9223372036854775808〜9223372036854775807という範囲の整数をそれぞれ扱えます。

各データ型が保持できる数値の範囲が、与えられたbit数で扱える数値の範囲となっています。

各データ型の範囲を超えてしまうようなプログラミングを組んだ場合、単純にエラーが発生するわけではなく、オーバーフローという状態が発生し、意図せぬ結果が出力されます。

以下にオーバーフローが発生する例と、コンパイルの時点でエラーとなる例を記述します。

プログラム上に上限を定めることなく繰り返した結果、intが扱える2147483647を超え、オーバーフローを起こして「-2147483648」という全く意図せぬ値を出力します。

はじめから取り扱えない値を変数に渡しているため、コンパイル時点でエラーとなります。

float(32bit)、double(64bit)

byte等と同様に数値を格納するデータ型ですが、floatとdoubleは小数点のみ扱います。

なおそれぞれ扱える範囲は、floatが負の値で-3.4028235E+38〜-1.401298E-45、正の値で1.401298E-45〜3.4028235E+38です。

doubleは負の値で-1.79769313486231570E+308〜-4.94065645841246544E-324、正の値で4.94065645841246544E-324〜1.79769313486231570E+308です。

以上のようにfloat、doubleで扱える小数点は、計算時に発生の可能性がある誤差を含んだ浮動小数点というものです。doubleの方がより精度が高いデータ型であるため、誤差が少なく精度を求められるプログラミングではdoubleを利用します。

またdouble型は変数に対してそのまま小数点を代入できますが、float型の場合は小数点の後に「F」が必要となります。

以下に各データ型の記述例を紹介します。

char(16bit)

charはUnicodeで定義された文字を扱うデータ型ですが、整数型として分類される場合もあります。

コンピュータは世界中で使われているため、日本であれば日本語、英語圏であれば英語といったように各国の言語を解釈する必要があります。それら世界中で使われる文字をコンピュータが認識できるコードに置き換えた共通の規格がUnicodeです。

char型に文字を格納する場合は、日本語等の文字を「'(シングルクォーテーション)」で囲む必要があります。またUnicodeの規格で割り当てられている文字コードを「”」の間に入力することでも表現可能です。

以下にcharの記述例を紹介します。

上記はいずれも「あ」が出力されます。「0x3042」は「あ」の文字コードであるためです。全ての文字コードは16進数の表記となっていますが、10進数に換えると0〜65635の整数です。そのため整数のデータ型と捉えることもできます。

SE
Javaのデータ型についてよく理解できました。
PM
データ型はJava以外のプログラミング言語でも役立つ基礎知識なので、この機会に習得しておくと良いでしょう。

Javaで的確なデータ型を指定してコーディングを行おう!


昨今は大容量のコンピュータもそれほどコストを割かずに利用できるようになってきているため、一昔前に比べると、システム稼働時のリソース使用状況に対してシビアになる場面も少なくなってきています。

それでも必要以上のリソース使用は、システムの不具合や負荷を発生させるきっかけになる可能性があります。データ型を適切に使い分けることは、システムエラーを未然に防ぐことはもちろん、リソースの削減に繋げることもできるため重要なポイントとなります。

データ型はJava以外のプログラミング言語でも役に立つ基礎知識となるため、プログラミングの学習を始める際には、ぜひデータ型の知識を定着させておくことをおすすめします。


Javaでのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

recommended

Categories

Tags