【Javaの基礎】Javaの変数(整数型)

 

こんにちは、SEの「とも」です。

今回は、前回に引き続き「変数」についてですが、その中でも「整数型」について書きたいと思います。

 

【整数型】

整数型には、以下の種類の型があります。

違いは「消費するメモリのサイズ」と、「表現できる数値の範囲」です。

大きな数値を表すためには、使用するメモリがより多く必要になります。

 

表現できる範囲 必要なメモリサイズ 説明
byte -128~127 1バイト(8ビット) 符号付き8ビットで表現できる範囲の整数を格納します。
short -32768~32767 2バイト(16ビット) 符号付き16ビットで表現できる範囲の整数を格納します。
int -2147483648~2147483647 4バイト(32ビット) 符号付き32ビットで表現できる範囲の整数を格納します。
long -9223372036854775808~9223372036854775807 8バイト(64ビット) 符号付き64ビットで表現できる範囲の整数を格納します。

※色の付いてる行は、使用頻度の高いデータ型です。

 

通常はint型が使用され、想定される最大の数値がint型の範囲を超える場合に、long型を使用します。

例えば、

  • int型だと、約21億の数値までしか表現できないため、大企業の売り上げや宇宙の惑星間の距離などは表現できませんよね。

そういう場合は、long型を使うことになります。

long型の最大値は、約900京(約900,000兆)なので、国家予算などの大きな数値でも十分に表現することができます。

 

最初からlongを使えばいいんじゃないか?

と思うかもしれませんが、

  • long型はint型の2倍のメモリを消費する
  • 使用する局面はそれほど多くない

という使用頻度と消費メモリのバランスから、通常はint型を利用します。

 

short型の場合は表現できる数値範囲は狭すぎるので、shortとintを使い分けるという使い方は通常しません。

使い分けを意識するコストの方が高いということですね。

 

使用する局面があるとすれば、大量のメモリを使用する処理(例えば画像の処理)で少しでもメモリの消費量を抑えたいというような場合に使用するというくらいですね。

 

ただ、昔であればともかく、近年では大容量のメモリを搭載したPCになっているので、メモリ消費量削減を目的に、shortを利用するということは減っているのではないかと思います。

 

byte型については、バイナリデータを扱う際に使用されています。

例えば、

  • ファイルにバイナリデータで書き込みや読み込みを行う
  • ネットワーク転送でバイナリデータで転送する

などです。

 

  • バイナリデータとは、「メモリに格納されているデータイメージそのまま」と考えてもらえばよいと思います。

byte型は整数型ですが、数値を扱う意味合いで使用されることはほぼ無く、データの塊をバイト単位で処理する時に使用されます。

 

次回は、浮動小数点型について書きたいと思います。