Javaのプログラムの構造
Javaのプログラムは次のような構造になっています:
大括りにクラスがあって、その中に
フィールド、コンストラクタ、メソッドを配置する。
Javaのデータ型
Javaのデータ型は大きく2つに分けられます
基本データ型 (プリミティブ型)
整数型:
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ビット単精度浮動小数点数 (約 7桁の有効数字を持つ)
double: 64ビット倍精度浮動小数点数 (約 15桁の有効数字を持つ)
真偽型:
boolean: 真 (true) または 偽 (false) の2つの値を持つ。
文字型:
char: 16ビットのUnicode文字 (例: 'A', 'b', '1', '@' など)
クラス型 (参照型)
クラス型は、Javaのクラスやインターフェースから派生したオブジェクトの参照を格納します。これには多くの組み込みクラスが含まれます。例として、String クラスはテキスト文字列を表すために使用されますが、他にも様々なクラスが存在します。
※るーるとして一文字目が大文字なので、そこで見分けることができる。
Javaでは、基本データ型は値そのものを格納しますが、クラス型はオブジェクトの参照を格納します。これにより、より複雑なデータ構造を表現することが可能になります。
Javaのデータ型はプログラムを組む上で非常に重要であり、適切なデータ型の選択はプログラムのパフォーマンスや挙動に影響を与えることがあります。プリミティブ型は基本的なデータを格納するために使用され、参照型はより高度な機能やデータを扱うために使用されます。
参照型のイメージ
1.オブジェクトの作成:
参照型の変数を宣言すると、その変数はまだオブジェクトを指していません。参照型の変数は、オブジェクトが格納されるメモリの場所(アドレス)を格納するためのスロットを持っているイメージです。
2.オブジェクトのインスタンス化:
実際にオブジェクトを作成(インスタンス化)すると、Javaは新しいメモリ領域を確保し、そのオブジェクトのデータを格納します。
アドレスの割り当て:
オブジェクトがインスタンス化されると、Java仮想マシン(JVM)はそのオブジェクトがメモリ上のどこに配置されるか、一意のアドレスを割り当てます。このアドレスは通常、16進数で表される一意の数値です。
3.参照の割り当て:
インスタンス化されたオブジェクトのアドレスが、参照型の変数に割り当てられます。この時、参照型の変数にはオブジェクトそのものではなく、そのオブジェクトのメモリ上のアドレス(参照)が格納されます。
4.オブジェクトへのアクセス:
以降、参照型の変数を介してオブジェクトにアクセスする場合、変数に格納されているアドレスを辿って、実際のオブジェクトのメモリ領域にアクセスします。このプロセスは、オブジェクトの内容やデータにアクセスするための手段となります。
参照の転送:
参照型の変数を別の変数に代入した場合、アドレス(参照)が転送されるだけで、オブジェクト自体はコピーされません。つまり、2つの変数が同じオブジェクトを参照している状態となります。
参考書籍
・すっきりわかるJava入門第3版
・オラクル(https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html)