基本型:
基本型は数値、文字、またはブール値であることは言うまでもありません。
参照型:
はオブジェクト型です。その値は何ですか?その値はメモリ空間への参照、つまりアドレスです。変数によって表される値または値のセットが保持されます。
例:
int a;
a=250; //変数 a を宣言すると、システムは a にスペースを割り当てます。
参照型はそうではありません。変数には参照空間のみが割り当てられ、データ空間は割り当てられません。データが何であるか、整数なのか、文字なのか誰もわからないからです。エラーの例を見てみましょう:
MyDate today;
today.day = 4; //today オブジェクトのデータ領域が割り当てられていないため、エラーが発生しました。
それでは、どのように値を割り当てるのでしょうか?宣言後、参照型変数は、その変数が指すオブジェクトにアクセスする前に、インスタンス化によってデータ領域を開く必要があります。例:
MyDate today; //参照を保存するための変数用のスペースを割り当てます
today = new MyDate(); //この文は、最初に new MyDate() を実行して開きます。 today 変数のデータ空間を作成し、代入操作を実行します
//参照変数の割り当て
MyDate a, b; // メモリ内の 2 つの参照空間を開きます
a = new MyDate(); MyDate オブジェクトのデータ空間を作成し、その空間の最初のアドレスを a
b = a; に割り当てます。
Quote Type:関数が値を渡すときの「参照渡し」を除き、それは「pass」です。オブジェクト変数に値を割り当てるために「=」が使用される場合は常に、「参照による」。
値の転送:
Java の基本データ型 (例: int、char、double など) がエントリ パラメータとして関数本体に渡され、渡されたパラメータは関数本体内のローカル変数になります。このローカル変数はすべての関数の入力パラメータのコピーです。 数値本体の内部操作はすべてこのコピーに対する操作であり、関数の実行が完了すると、このローカル変数はその使命を完了し、入力パラメーターとして使用される変数には影響しません。このようにパラメータを渡すことを「値」と呼びます。 Pass」。/*define a class*/class MyDate{ String Year; String Month; String Day; String Date; public MyDate(){ Year = "1900"; Month ="01"; Day = "01"; Date = Year + "." + Month + "."+ Day; } public String toString(){ return Date; } }public class ObjRef{ MyDate mydate1 = new MyDate(); MyDate mydate2 = mydate1;// = 使 mydate1和 mydate2将指向同一内存空间 //MyDate mydate2 = new MyDate();//从新new一个对象,则mydate1和mydate2是指向不同的内存空间的: //引用空/间和数据空间都不一样 public void changeObj(MyDate inObj){ inObj.Date = "2007.09.26"; } public static void main(String[] args) { ObjRef oRef = new ObjRef(); System.out.println("Before call changeObj() method: " + oRef.mydate1); oRef.changeObj(oRef.mydate1); System.out.println("After call changeObj() method: " + oRef.mydate1); System.out.println("After call changeObj() method: " + oRef.mydate2);//验证“= mydate1和 mydate2将指向同一内存空间“这一结论 } }関連記事:
Javaの4つの参照型を詳しく紹介
Javaの参照型の概念を分析
基本データ型と参照の違いを詳しく解説JavaScript で型を入力します
以上がJavaの基本型変数と参照型変数の詳細比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。