【Java入門】データ型(基本型と参照型)の種類について

Java入門
スポンサーリンク

こんにちは。いつもブログをご覧いただきありがとうございます。

今回は、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択しかありません。

主に条件判定などで最も活用されるパターンとなります。

分類範囲
論理型booleantrue / falseの2択

文字型

文字型もchar(チャー 又は キャラ)という型のみです。Unicodeの一文字を表します。

例えばひらがなの「あ」を表現したい場合は12354を指定し、カタカナの「ア」を表現したい場合は12450を指定してあげればよいのです。Unicodeが分からなければ少し難しいかもしれません。

分類範囲
文字型char0~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プログラミング以外を本格的に勉強したいっ!」という方へ

Javaスキルで悩んでいる方必見!本気で学習できる環境を探してみよう!
詳細はこちら
Javaスキルで悩んでいる方必見!本気で学習できる環境を探してみよう!
詳細はこちら
タイトルとURLをコピーしました