Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

データ型

Javaのデータ型は、大きく基本型プリミティブ型)と参照型に分類できます。

データ型
基本型
┃ ┣論理型
┃ ┃ ┗boolean … 真偽型(true、またはfalse)
┃ ┣整数型
┃ ┃ ┣byte … 1バイト符号付き整数(-128~127)
┃ ┃ ┣short … 2バイト符号付き整数(-32768~32767)
┃ ┃ ┣int … 4バイト符号付き整数(-2147483648~2147483647)
┃ ┃ ┗long … 8バイト符号付き整数(-9223372036854775808~9223372036854775807)
┃ ┣浮動小数点型
┃ ┃ ┣float … 4バイト浮動小数点数(±1.40239846×10^-45~±3.40282347×10^38)
┃ ┃ ┗double … 8バイト浮動小数点数
┃ ┃       (±4.94065645841246544×10^-324~±1.79769313486231570×10^308)
┃ ┗文字型
┃   ┗char … UNICODE文字(u0000~uffff)
参照型
  ┣クラス型 … データ(フィールド)と手続き(メソッド)を持つデータ構造
  ┣インターフェイス型 … 「インターフェイス」を参照
  ┗配列型 … 値の集合
論理型(boolean)

true/falseのいずれかしか持たない型です。

boolean flag = 1;
整数型(byte、short、int、long)

整数型には、byte、short、int、longなどの型があります。ただし、byteはバイトデータを表すための型なので、整数を表すための用途であれば、short、int、long型のいずれかを利用すべきです。
short、int、longの違いは、表現できる値の範囲だけです。基本はint型を利用し、それで不足の場合のみlong型を利用してください。short型を利用する機会はほとんどありません。

byte b = -128;
short s = 32767;
int i1 = 1_380;	// 桁区切り記号「_」も利用可(Java SE 7以降)
int i2 = 010;	// 8進数(0~)
int i3 = 0xFF;	// 16進数(0x~)
int i4 = 0b0010;	// 2進数(0b~。JavaSE 7以降)
long l = 100;

整数型では、接頭辞として0b、0、0xを付与することで、それぞれ2進数、8進数、16進数を表すこともできます。2進数では0、1だけ、8進数では0~7、16進数では0~9に加えて、アルファベットのA~Fを利用できます。
また、桁区切り文字として、値に「_」を含めることも可能です(これはあくまで値の見やすさを目的とした表記で、Javaの処理に影響を与えるものではありません)。

note

リテラルでの型の特定
数値リテラルでは、型を指定しなかった場合、デフォルトでint型と見なされます。もしも明示的に型を特定したい場合には「L」(long型)を値の末尾に付与してください。

System.out.println(2147483648L);
浮動小数点型

浮動小数点型には、float、double型があります。両者の違いは、表現できる値の範囲だけです。まずはdouble型を優先して利用します。float値を表すには、リテラルのサフィックスとして「f」または「F」を指定してください。
浮動小数点型では指数表現も利用できます。「1.234E5」は「1.234×10^5」の意味です。大文字小文字を区別しません。

float f = 1.1234f;
double d1 = 1.1234;
double d2 = 1.1234E5;	// 指数表現
文字型(char)

char型は、Unicode(UTF-16)で単一の文字を表します。内部的には16ビットの整数(0~65535)として文字を表現します。リテラル値はシングルクォートで括ります。文字そのものを指定する他、uxxxxの形式で文字を表すこともできます。

char c1 = 'あ';
char c2 = '¥u5f01';	// 16進数の文字コード表現

また、「~」の形式で改行やタブなど、特殊な制御文字を表現することもできます。このような表記をエスケープシーケンスと言います。

主なエスケープシーケンス
エスケープシーケンス 概要
n 改行(ラインフィード)
t タブ文字
b バックスペース
r キャリッジリターン
f フォームフィード
シングルクォート
ダブルクォート
\ ダバックスラッシュ
xxx 8進数の文字
uxxxx Unicode文字
attention

Javaの基本型には、複数の文字を表す文字列型はありません。文字列型はStringというクラスとして提供されています。詳しくは、「文字列」の節を参照してください。

配列型

配列は、複数の値をまとめて扱うためのしくみです。たとえば以下は、int型の配列(要素数は5個)を作成する例です。配列を表すにはは、型名の後ろに「[]」を付与します。

int[] data = new int[5];

配列の要素にアクセスするには、ブラケット構文([…])で要素の番号(インデックス)を指定します。要素のインデックスは0からスタートします。よって、要素数が5個の配列では、インデックス0~4で要素にアクセスできます。

data[0] = 10;
System.out.println(data[0]);	// 結果:10

lengthフィールドで、配列のサイズも取得できます。インデックスの上限は「length – 1」で表現できます。

System.out.println(data.length);	// 結果:5

また、配列は宣言時に、まとめて中身を初期化しても構いません。たとえば以下では、要素として1、2、3を持つint配列を作成しています。

int[] data2 = { 1, 2, 3 };

配列の要素として配列を指定することもできます。その性質を利用して、多次元配列を生成することもできます。多次元配列にアクセスするには、次元の数だけブラケットを連ねます。

int[][] data3 = {
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
};
System.out.println(data3[0][2]);	// 結果:3
基本文法
変数を宣言する
定数を宣言する – finalキーワード
データ型
型キャスト
演算子
コメント

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職