ホームページ >Java >&#&チュートリアル >Javaの基本型変数と参照型変数の詳細比較

Javaの基本型変数と参照型変数の詳細比較

阿神
阿神オリジナル
2017-03-18 13:56:461722ブラウズ

基本型:

基本型は数値、文字、またはブール値であることは言うまでもありません。

参照型:

はオブジェクト型です。その値は何ですか?その値はメモリ空間への参照、つまりアドレスです。変数によって表される値または値のセットが保持されます。

例:

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。