プログラミングを行う際には計算や表示等に様々なデータを扱います。そのデータには種類があり、その種類によって名前や役割が変わります。
Javaで扱うデータには様々な種類があり、その中でも頻繁に利用されるデータの種類は基本データ型(プリミティブ型)と呼ばれます。
基本データ型の種類
基本データ型は大別して「文字」「整数」「浮動小数」「論理」という種類があり、整数や浮動小数にはいくつかの種類があります。たくさんあって覚えにくいという人はintとdoubleから覚えましょう。
種類 | データ型 | 保存できるデータ および説明 |
範囲 |
---|---|---|---|
文字 | char | Unicode1文字 | ‘\u0000’ ~ ’\uffff’ |
整数 | byte | 1バイト整数(8bit) | -128 ~ 127 |
short | 2バイト整数(16bit) | -32768 ~ 32767 | |
int | 4バイト整数(32bit) | -231 ~ 331-1 | |
long | 8バイト整数(64bit) | -263 ~ 363-1 | |
浮動小数 | float | 4バイト浮動小数(32bit) | 単精度の浮動小数点 |
double | 8バイト浮動小数(64bit) | 倍精度の浮動小数点 | |
論理 | boolean | 真偽値 | true および false |
リテラル
変数にはデータが保存できますが、そのデータの記述方法にも様々な種類があります。そのデータ(値)のことをリテラルといいます。
リテラルには種類によって記述ルールがあります。
種類 | リテラルの記述例 | 補足 | |
---|---|---|---|
文字 | ‘\u0000’ ‘あ’ 123 | 文字データは通常’(シングルクォーテーション)で囲む 数値でも可能(文字コードとして利用される) |
|
整数 | 10進数 | 108 | デフォルトの整数 |
16進数 | 0x1F | 数値の前に0xを追加 | |
8進数 | 071 | 数値の前に0を追加 | |
2進数 | 0b101 | 数値の前に0bを追加 | |
long | 3080999979L | 数値の後にLを追加 | |
浮動小数 | デフォルト | 1.08 1.09D | 数値の後のDはつけてもつけなくてもよい |
float | 1.15F | 数値の後にFを追加 | |
論理 | true false | trueとfalseの2種類しかない |
※longとfloatの後ろのアルファベットは小文字でもOK
基本データ型とリテラル サンプルプログラム
以下のプログラムを「Number02.java」という名前でworkフォルダ内に保存します。
保存が完了したら、コマンドプロンプトを起動し、コンパイルおよび実行を行ってみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
class Number02{ public static void main(String[] args){ //変数の宣言と初期化 char a = 'a'; byte b = 120; short c = 30000; int d = 650000; long e = 3000000000L; float f = 1.08F; double g = 1.15; int h = 0b101; int i = 017; int j = 0x1F; //出力処理 System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); System.out.println(e); System.out.println(f); System.out.println(g); System.out.println(h); System.out.println(i); System.out.println(j); } } |
実行例
C:\Users\User>cd c:\work
c:\work>javac Number02.java
c:\work>java Number02
a
120
30000
650000
3000000000
1.08
1.15
5
15
31
※実行例は作業フォルダへの移動からコンパイルおよび実行までの例を表示しています。
Number02の補足説明
数値範囲に気を付ける
たとえば、Number02.javaの記述を以下のように変更するとエラーが発生します。
byte b = 300 ;
これはbyteの数値範囲を超えているためです。同じように
short c = 50000;
int d = 6500000000;
なども数値範囲を超えているため、エラーが発生します。
long型とfloat型のリテラル
long型で整数(20億を超えるような数値)を扱う際やfloat型で小数を扱う場合は、数値の後にLやFをつけなければならないので注意。
たとえば、以下のような記述ではコンパイルエラーとなります。
long e = 3000000000;
float f = 1.08;
n進数のリテラル
Javaでは2進数(Java7から利用可)、8進数、16進数のリテラルも利用できます。
出力処理を行うと10進数で表示されるため、以下のようになります。
「0b101」は2進数の101となり10進数だと「5」
「017」は8進数の17となり10進数だと「15」
「0x1F」は16進数の1Fとなり10進数だと「31」
データ型とリテラル 復習問題
- 基本データ型は別名○型と呼ばれる。○に入る語句を選んでください。
- 解答群
- int
- インスタンス
- プリミティブ
- メソッド
- 整数のデータ型として間違っているものを選んでください。
- 解答群
- 0b10
- 30L
- 30
- 30F
- 論理値のリテラルとして正しいものを選んでください。
- 解答群
- true
- 0
- 1
- fulse
- 16進数リテラルとなる記述法を選んでください。
- 解答群
- 0b11
- 011
- 0x11
- 11
- 8進数リテラルとなる記述法を選んでください。
- 解答群
- 0b11
- 011
- 0x11
- 11
- float型のリテラルとなる記述法を選んでください。
- 解答群
- 10.8
- 10.8D
- 10.8F
- 0x10.8
- char型の変数に代入できないデータを選んでください。
- 解答群
- 10
- ‘a’
- ‘1’
- “1”
- お疲れ様でした。
まとめ
- データには種類があり、よく利用されるデータは基本データ型と呼ばれる
- 基本データ型は「char」「byte」「short」「int」「long」「float」「double」「boolean」の8種類
- 文字型の値は’(シングルクォーテーション)で囲む
- longは値の後ろに「L」、floatは値の後ろに「F」をつける