LoginSignup
0
0

More than 1 year has passed since last update.

Javaの学習 ~データ型~

Posted at

Javaのデータ型には、プリミティブ型と参照型の2つがあります。
データ型・・・データの種類を表すもの。コンピュータにデータの扱い方を指定するために記述する。

プリミティブ型

数値、真偽値、文字を扱うデータ型です。基本型とも呼ばれます。

整数型
byte 8ビット整数(-128~127)
short 16ビット整数(-32768~32767)
int 32ビット整数(-2147483648~2147483647)
long 64ビット整数(-9223372036854775808~9223372036854775807)
論理型
boolean 真偽値(true/false)

↑※C言語と違い、「bool」ではなく「boolean」であることに注意!

浮動小数点数型
float 32ビット単精度浮動小数点数
double 64ビット単精度浮動小数点数
文字型
char 16ビットUnicode文字(u0000~uffff)

参照型

参照型には、オブジェクト型・列挙型・配列型があります。具体的には、new演算子を用いてオブジェクトを生成してから使用するデータ型のことです。

プリミティブ型と参照型の違いは?

プリミティブ型がメモリ上の値そのものを扱っているのに対し、参照型はその値を格納しているアドレスを参照しています。

プリミティブ型の例
int x = 0;
int y = x;  //xのメモリ上の値を代入している。
y = 1;  //yのメモリ上の値が書き換えられる。
System.out.println(x);
System.out.println(y);

実行結果

0    //xは元のメモリ上の値のまま
1   //yは新しくメモリ上の値を更新されたため、1となっている
参照型の例
int[] x = new int[1];
x[0] = 0;  //配列xの[0]に0(値そのもの)を代入
int[] y = x;
//↑参照型のオブジェクトを他の参照型に代入している場合、メモリ上のアドレスをコピーする
y[0] = 1;  //配列yの[0]に1(値そのもの)を代入
System.out.println(x[0]);
System.out.println(y[0]);

実行結果

1    //int[] yはint[] xのアドレスをコピーした為、同じ値を参照することになる。(どちらか一方の値を変更すると、もう片方も変更される)
1

値を参照しているか、アドレスを参照しているかの違いによって上記の例のような結果になります。

まとめ

最後まで閲覧いただき有難うございます!何か間違いやお気づきの点がございましたらコメントお願いいたします!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0