【はじめてのJava】基本データ型(整数型)【データ型と変数編】
はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
基本データ型(整数型)
プログラムの中で「変数」を使用する際に使用した「データ型」について詳しく解説していきます。
基本データ型編では、Javaで扱われるデータ型の中でも「基本データ型」と呼ばれる種類のデータ型について扱っていきます。
この記事では、「整数」を表す「基本データ型」についてを扱っていきます。
目次
基本データ型とは
プログラムの中で、「変数」を扱う際などに、その変数に入るデータがどんなデータなのかを指定する必要がありました。
その際に「データ型」というものを使って、データの種類を表していました。
Javaでは、データ型には大きく分けて基本データ型(プリミティブ型)とオブジェクト参照型(リファレンス型)の2種類があります。
基本データ型とオブジェクト参照型では、データの保持の方法に違いがありますが、ここでは扱うことが出来るデータの種類が違うということを覚えておくと良いと思います。
また、データの保持の仕方の違いについては、オブジェクト参照型についての記事で詳しく解説します。
基本データ型とは、プログラムの中で扱われるデータのうち、数字や文字などの、最も基本的なデータの種類を扱うことが出来るデータ型です。
Javaで基本データ型として扱えるようにされているのは、整数、浮動小数点数、文字、真偽値の4つです。浮動小数点数については、小数だと思っておいてもらえれば大丈夫です。
それらを表すデータ型として具体的に、「byte型」「short型」「int型」「long型」「float型」「double型」「char型」「boolean型」の8種類のデータ型が用意されています。
8種類の基本データ型を表にまとめると以下のようになります。
データ型 | 種類 | データの幅 | データの表現範囲 |
---|---|---|---|
byte | 整数 | 8ビット | -128 ~ 127 |
short | 整数 | 16ビット | − 2の15乗~2の15乗 − 1 (-32,768 ~ 32,767) |
int | 整数 | 32ビット | − 2の31乗~2の31乗 − 1 (-2,147,483,648 ~ 2,147,483,647) |
long | 整数 | 64ビット | − 2の63乗~2の63乗 − 1 (-9,223,372,036,854,775,808L ~ 9,223,372,036,854,775,807L) |
float | 浮動小数点数 | 32ビット | IEEE 754 規格の単精度浮動小数点数 |
double | 浮動小数点数 | 64ビット | IEEE 754 規格の単精度浮動小数点数 |
char | 文字 | 16ビット | Unicode規格の1文字(\u0000~\uFFFF) |
boolean | 論理値 | 1ビット | trueまたはfalse |
※ビット数とはコンピュータのメモリ上で確保される桁数のことです。また同じような表現でバイト数というものがあります。一般的には8ビット=1バイトで扱われることが多いです。
整数型
整数を扱う4つのデータ型について詳しく解説していきます。
Javaでは、整数を扱うためのデータ型として、「byte型」「short型」「int型」「long型」の4つがあります。
4つのデータ型を見てみると、バイト数と値の範囲が違うことが分かると思います。
これらの4つのデータ型は、使う種類によって、変数の中に保存することが出来るデータの範囲が異なっています。
「変数」はデータを入れるための箱というようにたとえられますが、「データ型」はその箱に入る「データの種類」とその箱の「大きさ」を決めています。
<探究>
もう少し細かく見ていくと、変数を定義すると、PCのメモリ上にデータを保存するための領域が用意されます。
その時に、Javaの基本データ型は、「byte型なら8ビット」、「int型なら32ビット」のようにデータ型ごとに決められた「ビット数」の領域を用意します。
このビット数によって、どれくらいの大きさまでの数値を格納することが出来るかが決まります。
(例)8ビットなら「-128~127」まで、「32ビットなら-2の31乗~2の31乗-1」まで
これらの定義から、変数に入る数値の大きさによってデータ型を使い分けることにより、よりメモリを節約してプログラムを作成することが出来るというメリットがあります。
(例)「10」という数値を格納するための変数を定義したときに、int型で変数を作成すると32ビット、byte型で変数を作成すると8ビットとなり、必要なメモリのビット数が4分の1で済む!
また、歴史的な背景としても、現在のPCと比較して、昔のPCはマシン性能やメモリの大きさが小さかったため、メモリを節約してプログラムを作成しなければ、必要なメモリが不足してしまうということがありました。それではプログラムを動作させることが出来ないということもあり、整数を扱うデータ型だけでもビット数が細かく分けられています。
byte型
byte型は、8ビットの符号付き整数を表すデータ型です。符号付とは+-がある数字のことです。
格納することが出来る数値の範囲: -128~127
主にメモリを節約したいときや、バイナリファイルやバイナリデータを扱う際に使用します。
バイナリとは、いわゆる「0」と「1」が並んだデータのことです。例えば画像や動画、音楽などもバイナリファイルです。PC(プログラム)上で扱う全てのデータは裏側では、この「0」と「1」の並びで表現することが出来ます。これを利用すると、画像ファイルやCSVファイルのようなファイルをプログラムから生成したり、コピーしたりなどの操作が可能です。
short型
short型は、16ビットの符号付き整数を表すデータ型です。
格納することが出来る数値の範囲:-32,768~32,767
主にメモリ節約のために使用されます。使用例としてはソケット通信などがありますが、通常は数値型の場合はint型を使うことが多いです。そのため、short型を使用する機会は現代ではあまりないかと思います。
int型
int型は、32ビットの符号付き整数を表すデータ型です。
格納することが出来る数値の範囲:-2,147,483,648~2,147,483,647(-約21億~約21億)
※通常、プログラムの中で整数を扱う際は、Javaの中では特に指定がない場合、数値はint型として扱われます。また、ソースコードの中で整数を書くと、自動的にint型の整数として判断されます。
そのため、int型の範囲外の整数をそのままソースコードの中に書くとコンパイルエラーになります。
long型
int型は、64ビットの符号付き整数を表すデータ型です。
格納することが出来る数値の範囲:-約922京~約922京
(実際の数字は-9,223,372,036,854,775,808[19桁]~9,223,372,036,854,775,807[19桁])
int型の範囲を超える値を使用する際には、long型を使用します。
具体的には、売り上げなどの金額を扱う場合などにはlong型を利用することもあるかと思います。
このときに、数字の最後に「L」または「l(小文字)」を付けることで、ソースコード中の数値がlong型だと判断されます。
「L」や「l(小文字)」を付けないと、数値はint型と判断されて、コンパイルエラーになります。
//int型の場合はそのまま数字を書ける!
int i = 10;
//long型の場合は数字に「L」または「l」をつけて書く!
long l = 10L;
long型を表す「L」または「l」を使う場合には、小文字の「l」は数字の「1」などと見間違いやすいので、大文字の「L」を使う方がオススメです!
基本データ型編・次回の内容
今回は基本データ型の中でも「整数型」について扱いました。基本データ型編・次回は基本データ型の中の「浮動小数点数(小数型)」の説明を行います。
はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編
データ型と変数編