こんにちは。いつもブログをご覧いただきありがとうございます。
今回は、Java言語で扱えるデータ型(基本型と参照型)の種類について解説を行います。
データ型の説明の前に、まずは「プログラミング」と「プログラム」について、データ型とどういう関係になるか理解しておきましょう。
プログラミングとは「エンジニア(プログラマ)がコンピュータに対してプログラム(命令文)を書く」ことです。
そして、プログラムとは「データとアルゴリズムを組み合わせた手順書」になります。
このデータには、いくつもの種類が存在します。例えば、数値であったり、文字列であったりします。そのため、あらかじめ用意された型があるため、それを使用してプログラムを作成することになります。
それでは、Java言語で扱えるデータ型についてこれから勉強して行きましょう!
データ型は大きく分けて2つあります。初めに紹介したように基本型と参照型です。
基本型
基本型は全部で8つの型が存在し、以下の4つの分類に分けることができます。
- 整数型(byte / short / int / long)
- 浮動小数点型(float / double)
- 論理型(boolean)
- 文字型(char)
整数型
整数型は4つの型が存在します。byte(バイト)、short(ショート)、int(イント)、long(ロング)の4つです。言葉の通り、数値(-1、-2〜とか、1、2〜など)を扱いたい時に使用します。
システム開発の現場では主にint 又は long を使用している事が多いと思います。
分類 | 型 | 範囲 |
整数型 | byte | -128~127 |
整数型 | short | -32768~32767 |
整数型 | int | -2147483648~2147483647 |
整数型 | long | -9223372036854775808~9223372036854775807 |
扱える数値の範囲は決まっているため、範囲外の数値を格納した場合、エラーとなってしまい、プログラムが正常に動作することが出来なくなります。
例えばbyte型を例にしてみると、以下のプログラムを書くと、エラーになってしまいます。
byte max = 128;
byte min = -129;
エラーメッセージ:Type mismatch: cannot convert from int to byte
byte型が扱える値の範囲は「-128~127」のため、「-129」や「128」という値は格納できません。
浮動小数点型
浮動小数点型は2つの型が存在します。float(フロート)、double(ダブル)です。小数点を含む値の計算などで使用されます。
下記の赤文字のように数字を仮数、基数、指数で表現することでしたね。

システム開発の現場では主に double を使用している事が多いと思います。
分類 | 型 | 範囲 |
浮動小数点型 | float | ±3.4×10の38乗~±1.4×10の-45乗 |
浮動小数点型 | double | ±1.8×10の308乗~±4.9×10の-324乗 |
使い方は少し特徴的で、最後に「f」「d」を付けます。
float a = 1f;
double b = 1d;
論理型
論理型はboolean(ブーリアン)という型のみです。ture / falseの2択しかありません。
主に条件判定などで最も活用されるパターンとなります。
分類 | 型 | 範囲 |
論理型 | boolean | true / falseの2択 |
文字型
文字型もchar(チャー 又は キャラ)という型のみです。Unicodeの一文字を表します。
例えばひらがなの「あ」を表現したい場合は12354を指定し、カタカナの「ア」を表現したい場合は12450を指定してあげればよいのです。Unicodeが分からなければ少し難しいかもしれません。
分類 | 型 | 範囲 |
文字型 | char | 0~65535 |
実際にコードを書くときはこんな感じになります。
char arg1 = 12354;
char arg2 = 12450;
System.out.println( arg1 ); // 実行結果は あ になる。
System.out.println( arg2 ); // 実行結果は ア になる。
こちらは1文字をシングルクォーテーションでくくり表現することができます。
char arg1 = 'あ';
char arg2 = 'ア';
System.out.println( arg1 ); // 実行結果は あ になる。
System.out.println( arg2 ); // 実行結果は ア になる。
参照型
参照型は以下の2つの分類に分けることができます。
- クラス型(Stringクラス、Integerクラスなど)
- 配列型
参照型はデータ型とは異なり、データ型は値の代入や保持ができますが、参照型は値が格納されている場所を保持します。説明が少し複雑になるため、一度サンプルコードにて解説を行います。
package app;
public class App {
public static void main(String[] args) throws Exception {
String arg1 = new String("12345");
String arg2 = new String("12345");
System.out.println( arg1 == arg2 );
}
}
String型の変数arg1に「12345」という文字列を格納し、同じくString型の変数arg2に「12345」という文字列を格納しました。その後、値が等しいかどうか確認するため、関係演算子( == )を使用しています。arg1とarg2にどちらとも「12345」という文字列なので、等しいはずですが、実行結果はfalseになります。
理由は「参照型は値が格納されている場所を保持している」からです。arg1とarg2はメモリ上では別々の場所に格納されます。そのため、場所の比較を行った場合、結果はfalseになってしまいます。
Stringクラス(参照型)で値の比較を行いたい場合は関係演算子( == )ではなく、equalsメソッドを使用します。
package app;
public class App {
public static void main(String[] args) throws Exception {
String arg1 = new String("12345");
String arg2 = new String("12345");
System.out.println( arg1.equals(arg2) );
}
}
実行結果はtrueになります。ここは注意する必要がありますね。
さいごに
最後まで読んでいただきありがとうございました。
今回の記事はいかがだったでしょうか。無理に暗記はせず、使い方や注意点を整理して、その都度調べながら、確認しながら進めても大丈夫だと思います!
おすすめ記事
「Javaプログラミングをもう一度本格的に勉強したいっ!」という方へ
逆に、「Javaプログラミング以外を本格的に勉強したいっ!」という方へ