Heim >Java >javaLernprogramm >Detaillierter Vergleich von Basistypvariablen und Referenztypvariablen in Java

Detaillierter Vergleich von Basistypvariablen und Referenztypvariablen in Java

阿神
阿神Original
2017-03-18 13:56:461717Durchsuche

Grundtyp:

Der Grundtyp ist selbstverständlich eine Zahl, ein Zeichen oder ein boolescher Wert.

Referenztyp:

ist ein Objekttyp, was ist der Wert? Sein Wert ist ein Verweis auf den Speicherplatz, der die Adresse ist. Der Speicher, auf den verwiesen wird, enthält einen Wert oder eine Reihe von Werten, die durch die Variable dargestellt werden.

Beispiel:

int a;
a=250; //Bei der Deklaration der Variablen a weist das System Platz zu.

Der Referenztyp wird der Variablen nicht zugewiesen, der Datenraum wird nicht zugewiesen, weil niemand weiß, was die Daten sind, Ganzzahl, Zeichen? Schauen wir uns ein Fehlerbeispiel an:

MyDate today;today.day = 4; //Ein Fehler ist aufgetreten, weil der Datenraum des Today-Objekts nicht zugewiesen ist.

Wie weisen wir ihm dann einen Wert zu? Nach der Deklaration muss eine Referenztypvariable durch Instanziierung Datenraum öffnen, bevor auf das Objekt zugegriffen werden kann, auf das die Variable zeigt. Zum Beispiel:

MyDate today; //Ordnen Sie die Variable einem Leerzeichen zu, um die Referenz zu speichern

today = new MyDate(); //Dieser Satz besteht zunächst aus zwei Schritten Führe new MyDate( ) aus, öffne Datenraum für die heutige Variable und führe dann die Zuweisungsoperation aus

//Referenzvariable zuweisen

MyDate a, b; //Öffne zwei Referenzräume im Speicher

a = new MyDate(); //Öffnen Sie den Datenraum des MyDate-Objekts und weisen Sie die erste Adresse des Raums a zu.

b = a; Der Speicherplatz

ist wie unten gezeigt

Referenzübergabe und Wertübergabe

Referenztyp:

Außer Wenn eine Funktion einen Wert übergibt, erfolgt die Übergabe per Referenz. Jedes Mal, wenn „=" verwendet wird, um einer Objektvariablen einen Wert zuzuweisen, erfolgt die Übergabe per Referenz.

Wertübertragung:

Die Übertragung von Basistypen ist eine Wertübertragung, genau wie die C-Sprache, wenn Javas grundlegende Datentypen (z. B int, char, double usw.) werden als Eingabeparameter an den Funktionskörper übergeben, die übergebenen Parameter werden zu lokalen Variablen innerhalb des Funktionskörpers. Diese lokale Variable ist eine Kopie der Eingabeparameter Die internen Operationen des Zahlenkörpers sind alle Operationen an dieser Kopie. Nach Abschluss der Funktionsausführung hat diese lokale Variable ihre Aufgabe erfüllt und hat keinen Einfluss auf die als Eingabeparameter verwendeten Variablen. Die Parameterübergabe auf diese Weise wird als „Wert“ bezeichnet Pass".

Verwandte Artikel:
/*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将指向同一内存空间“这一结论      
    }
}

Eine detaillierte Einführung in die vier Referenztypen in Java

Analyse von Referenztypen im Java-Konzept

Detaillierte Erläuterung des Unterschieds zwischen JavaScript-Basisdatentypen und Referenztypen

Das obige ist der detaillierte Inhalt vonDetaillierter Vergleich von Basistypvariablen und Referenztypvariablen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn