Okapi Project

リテラル

バージョン
2004 年 01 月 10 日 Ver.1.0
作成者
T.Hirata ( Xware )

要約

ここでは Java の基礎知識として Java で使用できるリテラルについての解説をします。

目次


1. リテラルの概要

リテラルとは、変数の初期化や、計算使用する値など、データそのものをさします。

リテラルには、「数値リテラル」、「文字リテラル」、「boolean リテラル」、「文字列リテラル」があります。

 

2. 数値リテラル

数値リテラルには、整数の値を表す整数リテラルと少数の値を表す小数リテラルがあります。

整数リテラルは、byte , short , int , long 型で使用し、小数リテラルは float , double 型で使用します。

 

2.1. 整数リテラル値の表現

数値リテラルは、10 進表現、16 進表現、8 進表現で値を指定することが可能です。

10 進数以外をリテラルに使用する場合は、それを識別する文字をつけます。

 

整数リテラル値の表現方法
指定方法 書き方
10 進表現 そのまま書く int i = 255 ;
16 進表現 数値の前に「0x」をつける int i = 0xEF ;
8 進表現 数値の前に「0」をつける int i = 0377 ;

例の値はすべて 255 を表しています。

 

2.2. 小数リテラル値の表現

小数リテラルは、10 進表現、指数表現で値を指定することが可能です。

 

小数リテラル値の表現方法
指定方法 書き方
10 進表現 そのまま書く double d = 0.0025 ;
指数表現 10 の○○乗で表現する( E または e) double d = 2.50E-3 ;

例の値はすべて 0.0025 を表しています。

 

2.3. 数値リテラルの型

数値リテラルのうち整数はデフォルトで int 型として、小数はデフォルトで double 型として扱われます。

したがって明示的に型を指定したい場合は、型をあらわす識別をつける必要があります。

 

小数リテラル値の表現方法
データ型 書き方
long 数値の後ろに「L または l 」をつける long l = 255L;
float 数値の後ろに「F または f 」をつける float f = 1.25F;

例の値はすべて 0.0025 を表しています。

 

3. 数値リテラルの代入

Java コンパイラでは、数値リテラルの型はデフォルトで、「整数が int」、「小数が double」になり、代入先の型がデフォルトの型より精度が低い場合には代入は可能ですが、代入先が表現できる範囲の値である必要があり、注意が必要です。

 

数値リテラルの代入について
データ型 リテラルに指定できる値
byte

型が表現できる範囲の数値であれば代入可能

範囲を超える場合はコンパイルエラー

少数リテラルはコンパイルエラー

short
int
long

int 型の範囲であれば代入可能

int 範囲を超える場合は long であることを明示(最後に「L」or「l」を付ける)

float

整数リテラルは int の範囲であれば代入可能(精度が落ちる)

小数数リテラルの場合 float であることを明示(最後に「F」or「f」を付ける)

double

型が表現できる範囲の数値であれば代入可能

整数リテラルは int の範囲であれば代入可能(精度が落ちる)

int 範囲を超える場合は double であることを明示(最後に「D」or「d」を付ける)

 

4. 文字リテラル

文字リテラルとは、1 文字の表現するためのリテラルで、char 型で使用します。

一般的に半角文字は 8 ビットの ASCII 文字を使用していますが、Java では文字に 16 ビットの Unicode を使用しています。

 

4.1. 文字リテラルの表現

文字リテラルは、文字をシングルクォーテーション「 ’」で囲むことで表現します。

また、「Unicode」、「数値」、「エスケープシーケンス(後述)」を指定することも可能です。

 

文字リテラルの表現
指定方法 書き方
文字 「 '」で囲む char c = 'A';
Unicode 16 進の Unicord の前に「\u」をつけて「'」で囲む char c = '\u0041';
数値 16 進の Unicode を10進に変換した数値 char c = 65;

例の値はすべて ”A” を表しています。

 

5. 文字列リテラル

文字列リテラルとは、複数の文字のまとまり(文字列)を表現するためのリテラルです。

Java では、文字列を取り扱う基本データ型はなく、String クラスより生成されたオブジェクト(参照データ型)を使用します。

 

5.1. 文字列リテラルの表現

文字列リテラルは、文字列をダブルクォーテーション「 ”」で囲むことで表現します。

文字列リテラルには、文字リテラル同様「Unicode」、「エスケープシーケンス(後述)」を指定することもできます。

また、「+」演算子を使用して文字列を結合することもできます。

 

文字列リテラルの表現
指定方法 書き方
文字列 「 "」で囲む String st = "ABC";
Unicode Unicord を「 "」で囲む String st = "\u0041BC";
結合 2 つの文字列を「+」でつなぐ String st = "\u0041" + "B" + "C";

例の値はすべて ”ABC” を表しています。

 

6. エスケープシーケンス

エスケープシーケンスとは、文字リテラルや文字列リテラルで、バックスペースや水平タブなどのソースに直接記述できない文字を記述するための方法で、「\」を先頭に付けます。

エスケープシーケンスは文字リテラルとしても、文字列リテラルとしても使用することができます。

先の文字リテラルで登場したUnicodeの指定に使う「\u」もエスケープシーケンスです。

 

エスケープシーケンスの表現
エスケープシーケンス 意味
\b バックスペース
\t 水平タブ
\n 改行
\f 用紙送り
\r キャリッジリターン
\" ダブルクォーテーション(二重引用符)
\' シングルクォーテーション(単一引用符)
\/ バックスラッシュ
\xxx 8 進数文字表記(xxx は 8 進数)
\uxxx Unicode 表記(xxxx は 16 進数)

 

7. booleanリテラル

boolean リテラルとは、基本データ型の boolean に格納できる唯一の値です。

boolean は真(true)と偽(false)の 2 種類しか表現することができず、この真偽をあらわします。

 

7.1. boolean リテラルの表現

boolean リテラルは、真、偽をそれぞれ「true」、「false」で表現します。

このリテラル値は Java の予約語となっており、大文字(TRUE)で書いたり、ダブルクォーテーションで囲んだり(”false”)することは許されません。

 

boolean リテラルの表現
指定方法 書き方
true boolean b = true;
false boolean b = false;

 

8. null は特殊なリテラル

null は参照データ型に対して、オブジェクトが値を持たない(参照値を持たない)ことを示す特別なリテラルです。

null リテラルは、一般的な代入の他、比較演算子による比較に使用することができます。

 

ここで注意したいのは String において null と ”” (空文字)は似て非なるものであるということです。

null とはオブジェクトの実態がない状態なので、null オブジェクトはメモリをほとんど消費しませが、 ”” の場合オブジェクトの実態は存在していますので、それなりにメモリを消費します。

 

基本データ型で null を扱うことはできません。

 


Copyright © 2003 - 2006 Okapi Project All Rights Reserved.