注目記事

【Javaコード入門】基本文法_③データ型

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×1038
┃ ┃ ┗double … 8バイト浮動小数点数
┃ ┃       (±4.94065645841246544×10-324~±1.79769313486231570×10308
┃ ┗文字型
┃   ┗char … UNICODE文字(u0000~uffff)
参照型
    ┣クラス型 … データ(フィールド)と手続き(メソッド)を持つデータ構造
    ┣インターフェイス型 … 「インターフェイス」を参照
    ┗配列型 … 値の集合

論理型(boolean)

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

  1. boolean flag = 1;

整数型(byte、short、int、long)

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

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

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

 

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

 

  1. System.out.println(2147483648L);

浮動小数点型

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

  1. float f = 1.1234f;
  2. double d1 = 1.1234;
  3. double d2 = 1.1234E5; // 指数表現

文字型(char)

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

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

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

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

 

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

配列型

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

  1. int[] data = new int[5];

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

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

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

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

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

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

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

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

監修

山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。