Java には 2 種類の
Java 参照型
Java の参照型には次の 5 種類があります。
参照タイプ | 説明 |
---|---|
クラス | 説明書セットです。オブジェクトの内容を説明します。 |
配列 | 同じ型の要素を格納する固定サイズのデータ構造を提供します。 |
注釈 | これは、メタデータをプログラム要素に関連付ける方法を提供します。 |
インターフェース | Java クラスによって実装されます。 |
列挙 | これはタイプセーフな特別な種類のクラスです。 enum 内の各要素は、その enum のインスタンスです。 |
参照データ型とプリミティブ データ型
参照タイプ | プリミティブ型 |
---|---|
文字列以外は事前定義されていません。 | Java で事前に定義されています。 |
すべての参照型は大文字で始まります。 | すべてのプリミティブ型は小文字で始まります。 |
非プリミティブ型はすべて同じサイズになります。 | プリミティブ型のサイズはデータ型によって異なります。 |
メソッドを呼び出したり呼び出すために使用されます。 | プリミティブ型を使用してメソッドを呼び出すことはできません。 |
null にすることもできます。 | null にすることはできません。それは常に価値を持っています。 |
参照データ型の例としては、クラス、配列、文字列、インターフェイスなどがあります。 | プリミティブ データ型の例としては、int、float、double、Boolean、long などがあります。 |
JVM は、デフォルトで各参照変数に 8 バイトを割り当てます。 | そのサイズはデータ型によって異なります。 |
例 : Demo d1; | 例 : int num=78; |
メモリ割り当てとガベージ コレクション
Javaでは、 新しいキーワード を作成するために使用されます 実例 クラスの。つまり、割り当ててクラスをインスタンス化します。 メモリ 新しいオブジェクトを取得し、そのメモリへの参照を返します。オブジェクトは Java ヒープ領域のメモリを占有します。 new キーワードを使用して、 配列オブジェクト 。
ClassName objectName = new ClassName();
オブジェクトへの参照がない場合、そのオブジェクトによって使用されているメモリはガベージ コレクション プロセス中に再利用できます。
プリミティブ型と参照型の間の変換
プリミティブ型から参照型への変換は と呼ばれます。 オートボクシング 参照型からプリミティブ型への変換が呼び出されます。 開梱する 。
参照タイプの比較
Java の参照型を比較することもできます。 Java では、参照型を比較する 2 つの方法が提供されています。
等号 (==) 演算子を使用する
オブジェクトのメモリ位置を比較します。両方のオブジェクトのメモリ アドレス (参照) が同じであれば、オブジェクトは等しいです。オブジェクトの内容は比較されないことに注意してください。例えば:
Demo d1 = new Demo('Atlanta'); //creating a reference of Demo class Demo d2 = d1; //assigning the reference d1 into d2 if(d1=d2) //comparing reference
String.equals() メソッドを使用する
このメソッドは以下に属します。 弦 クラス。をオーバーライドします。 等しい() の方法 物体 クラス 。また、参照型の比較に等価演算子 (==) も使用します。たとえば、次のコード スニペットを考えてみましょう。
String str1='JAVA'; String str2='JAVA'; String str3='java'; System.out.println(str1.equals(str2)); //returns true because content and case is same System.out.println(str1.equals(str3)); //returns false because case is not same
参照型のコピー
参照型をコピーする場合、オブジェクトへの参照のコピーが作成されるか、オブジェクトの実際のコピー (新しいコピーの作成) が作成されるかの 2 つの可能性があります。
次の例では、オブジェクトへの参照を割り当てています。オブジェクトに変更を加えた場合は、参照も反映され、その逆も同様です。
Sum s1 = new Sum(); Sum s2= s1;