バナー画像

Javaにはプリミティブ型と参照型と呼ばれるデータ型の違いが存在しますが、概要についてしっかりと把握出来ているでしょうか。

本記事では、Javaのプリミティブ型についての概要から、参照型と呼ばれるデータ型との違いについてご紹介していきます。

Javaにおけるプリミティブ型とは


Javaでは、基本となるデータ型として8種類の型を用意しており、これらのデータ型をプリミティブ型と呼びます。

プリミティブ型では、値そのものを格納します。

8種類のデータ型

Javaでプリミティブ型として用意されているデータ型の一覧が下記です。

プリミティブ型一覧
  • byte: 8bit整数
  • short: 16bit整数
  • int: 32bit整数
  • long: 64bit整数
  • float: 32bit浮動小数点
  • double: 64bit浮動小数点
  • char: 16bit文字
  • boolean: 真偽値

参照型との違い

参照型は、プリミティブ型とは異なり、値そのものではなくアドレスを保持するデータ型です。

アドレスを参照して値を取得することから、参照型と呼ばれます。

「配列」「List」などが参照型としてあげられます。

ラッパークラス

プリミティブ型には、ラッパークラスと呼ばれるプリミティブ型の値を包含したクラスが提供されています。

それぞれのプリミティブ型に関連する定数やメソッドが用意されています。

ラッパークラス
  • byte: java.lang.Byte
  • short: java.lang.Short
  • int: java.lang.Integer
  • long: java.lang.Long
  • float: java.lang.Float
  • double: java.lang.Double
  • char: java.lang.Character
  • boolean: java.lang.Boolean

Javaプリミティブ型のサンプルコード


Javaプリミティブ型について、実際のサンプルコードで具体的なデータの動きについて確認していきましょう。

データ範囲

プリミティブ型には、一覧で記した通り、それぞれのデータ型で適用出来る範囲が決まっています。

ラッパークラスに最大値・最小値の定数が用意されていますので、サンプルコードで確認してみましょう。

public class Main {
	
	public static void main(String[] args) {
		byte byteMax = Byte.MAX_VALUE;
		byte byteMin = Byte.MIN_VALUE;
		short shortMax = Short.MAX_VALUE;
		short shortMin = Short.MIN_VALUE;
		int intMax = Integer.MAX_VALUE;
		int intMin = Integer.MIN_VALUE;
		long longMax = Long.MAX_VALUE;
		long longMin = Long.MIN_VALUE;
		float floatMax = Float.MAX_VALUE;
		float floatMin = Float.MIN_VALUE;
		double doubleMax = Double.MAX_VALUE;
		double doubleMin = Double.MIN_VALUE;
		char ch = 'あ';
		boolean bl1 = Boolean.TRUE;
		boolean bl2 = Boolean.FALSE;
		
		System.out.println("byteの最大値: " + byteMax);
		System.out.println("byteの最小値: " + byteMin);
		System.out.println("shortの最大値: " + shortMax);
		System.out.println("shortの最小値: " + shortMin);
		System.out.println("intの最大値: " + intMax);
		System.out.println("intの最小値: " + intMin);
		System.out.println("longの最大値: " + longMax);
		System.out.println("longの最小値: " + longMin);
		System.out.println("floatの最大値: " + floatMax);
		System.out.println("floatの最小値: " + floatMin);
		System.out.println("doubleの最大値: " + doubleMax);
		System.out.println("doubleの最小値: " + doubleMin);
		System.out.println("charの値: " + ch);
		System.out.println("booleanの真値: " + bl1);
		System.out.println("booleanの偽値: " + bl2);
	}
}


実行した結果が下記です。

byteの最大値: 127
byteの最小値: -128
shortの最大値: 32767
shortの最小値: -32768
intの最大値: 2147483647
intの最小値: -2147483648
longの最大値: 9223372036854775807
longの最小値: -9223372036854775808
floatの最大値: 3.4028235E38
floatの最小値: 1.4E-45
doubleの最大値: 1.7976931348623157E308
doubleの最小値: 4.9E-324
charの値: あ
booleanの真値: true
booleanの偽値: false

このサンプルでは、それぞれのプリミティブ型で扱える最大値・最小値と、char型のサンプルデータをコンソールに出力しました。

参照型との扱いの違い

次に参照型との扱いの違いで気をつけたいポイントについて、サンプルコードで確認していきます。

public class Main {
	
	public static void main(String[] args) {
		int num1 = 5;
		int num2 = num1;
		num2 = 10;
		
		int[] num3 = new int[1];
		num3[0] = 20;
		
		int[] num4 = num3;
		num3[0] = 3;
		
		System.out.println("プリミティブ型 num1: "+ num1);
		System.out.println("プリミティブ型 num2: "+ num2);
		System.out.println("参照型 num3: "+ num3[0]);
		System.out.println("参照型 num4: "+ num4[0]);
	}
}

実行した結果が下記です。

プリミティブ型 num1: 5
プリミティブ型 num2: 10
参照型 num3: 3
参照型 num4: 3

プリミティブ型と参照型で、値を上書きした際の挙動が異なることが確認出来るかと思います。

これが実際の値を格納するプリミティブ型か、アドレスから値を参照する参照型かの違いです。

プリミティブ型では、6行目で値を上書きしても該当変数の値のみが上書きされているのに対し、参照型では12行目で上書きした値が11行目で変数に代入した元の変数も上書きされていることを意識する必要があります。

さいごに: Javaのプリミティブ型と参照型の違いを理解しよう


本記事では、Javaのプリミティブ型について、データ型の種類と概要に加えて、参照型との違いをサンプルコードを掲載しながらご紹介してきました。

プリミティブ型のデータ範囲については暗記する必要はなく、それぞれどの程度の範囲まで扱えるのかを把握しながら都度調べる程度で十分です。

初心者の方が気を付けるべきは、参照型との扱いの違いなので、変数に設定した値が意図せず上書きされてしまうような場合、今回ご紹介したプリミティブ型と参照型の扱いの違いをもう一度確認してみてください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。