
現在私はJava SE Silverの合格に向けて勉強しています。
職場ではWebアプリケーションの開発をしていますが、オンライン処理で使用しているJavaを体系的に理解し、仕事で役立てようとしています。
今回はJava SE Silverの試験範囲の一つである『Javaのデータ型の操作』について色々とまとめたものを記載したいと思います。

Javaのデータ型について
当たり前ですが、Javaで使用する変数にも他の言語同様にデータ型が存在します。
データ型の種類
Javaの変数には大きく2つの変数の型が存在します。
参照型は、VBAで言うならばオブジェクトのようなもので、インスタンスを作成しないと使用できません。
他の言語を開発したことがある方ならプリミティブ型の方が変数の型としてわかりやすいと思います。
今回取り上げるのはプリミティブ型の方です。
プリミティブ型の種類
データ型 | 値 |
---|---|
boolean | true(真)、false(偽) |
char | 16ビットのUnicode文字を扱う。または1文字の文字列を扱う |
byte | 8ビットの整数型 -128~127の範囲の数値 |
short | 16ビットの整数型 -32,768~32,767の範囲の数値 |
int | 32ビットの整数型 -2,147,483,648~2,147,483,647の範囲の数値 |
long | 64ビットの整数型 -9,223,372,036,854,775,808~9,223,372,036,854,775,807の範囲の数値 |
float | 32ビットの単精度浮動小数点数 |
double | 64ビットの倍精度浮動小数点数 |
このような範囲をプリミティブ型は持っています。
補足
各プリミティブ型を参照型として使用できるクラス『ラッパークラス』というものがJavaには存在します。
例えばプリミティブ型の『int』には、『lnteger』というラッパークラスが用意されています。
本来別の型へ値を移し替える際には、キャストが必要となりますが、ラッパークラスへの代入の際には、キャストを省略して自動でキャストをしてくれる機能があります。
これをオートボクシングといいます。
public class Test { public static void main(String[] args){ byte testByte = 100; Byte testWrapperByte = testByte; System.out.println(testByte); } }
オートボクシング一覧
データ型 | ラッパークラス |
---|---|
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char・int型以外は先頭文字が大文字になったものがラッパークラスですね。
リテラルとは
リテラルとは値そのもののことです。
int sample = 9999;
というようなコードがあった場合、『9999』という値そのものをリテラルといいます。
リテラルはデフォルトのプリミティブ型を持っていて、true/falseの値であればboolean型、整数の値であればint型、小数点が含まれていればdouble型、文字であればchar型として扱います。
例えば以下のコード
String test = String.valueOf(5 + 6);
この5と6という値は、整数のためint型と判断され、そらぞれを足し算した結果が返却されます。
これを56という結果にしたい場合には、文字列リテラルをつけてString型であると認識させてあげる必要があります。
そのコードがこちらです。
String test = String.valueOf(“5” + “6”);
確認コード
public class Test { public static void main(String[] args){ String test = String.valueOf(5 + 6); System.out.println("int型で計算した結果:" + test); test = String.valueOf("5" + "6"); System.out.println("String型で計算した結果:" + test); } }
出力結果
int型で計算した結果:11
String型で計算した結果:56
各データ型ごとのリテラルの表現方法は以下の通りです。
●整数型
int型
10進数を入力した時
0で始まる時 8進数として変換される
0xまたは0Xで始まる時 16進数として変換される
long型
末尾にlまたはLを入力したとき
先ほどと同様に8進数、16進数表記も可能
参考コード
public class Test { public static void main(String[] args){ int test = 10; System.out.println("10進数で代入した結果:" + test); test = 012; System.out.println("8進数で代入した結果:" + test); test = 0xA; System.out.println("16進数で代入した結果:" + test); } }
出力結果
10進数で代入した結果:10
8進数で代入した結果:10
16進数で代入した結果:10
●浮動小数型
float型
末尾にfまたはFを入力した時
整数部分・少数部分が0の場合は省略可能
指数表現も可能となる
double型
末尾にdまたはDを入力した時
float型同様に0の省略と指数表現も可能
参考コード
public class Test { public static void main(String[] args){ float test = 5.f; System.out.println("小数を省略した結果:" + test); test = .5f; System.out.println("整数部分を省略した結果:" + test); } }
出力結果
小数を省略した結果:5.0
整数部分を省略した結果:0.5
●文字・文字列型
char型
‘(シングルコーテーション)で囲んだ時
エスケープシーケンスを使用して表現した時
String型
“(ダブルコーテーション)で囲んだ時
char同様にエスケープシーケンスを使用して表現した時
以上、Javaのデータ型の操作についてでした。
Java SE Silver合格に向けたおススメ書籍