A Java két típust kínál
Java hivatkozási típusok
A Java-ban a következő öt referenciatípus létezik:
Referencia típus | Leírás |
---|---|
Osztály | Ez egy utasításkészlet. Leírja az objektum tartalmát. |
Sor | Ez biztosítja azt a fix méretű adatstruktúrát, amely az azonos típusú elemeket tárolja. |
Annotációk | Módot biztosít a metaadatok társítására programelemekhez. |
Felület | Java osztályok valósítják meg. |
Felsorolás | Ez egy speciális típusú osztály, amely típusbiztos. Az enumban lévő minden elem ennek az enumnak egy példánya. |
Referencia vs primitív adattípusok
Referencia típus | Primitív típus |
---|---|
A String kivételével nincs előre definiálva. | Javaban előre definiálva van. |
Minden hivatkozás típusa nagybetűvel kezdődik. | Minden primitív típus kisbetűvel kezdődik. |
A nem primitív típusok mérete azonos. | A primitív típus mérete az adattípustól függ. |
Metódusok meghívására vagy hívására szolgál. | Nem hívhatjuk meg a metódust primitív típussal. |
Lehet nulla. | Nem lehet nulla. Mindig van értéke. |
Példák a referencia adattípusokra: osztály, tömb, karakterlánc, interfész stb. | Példák a primitív adattípusokra: int, float, double, Boolean, long stb. |
A JVM alapértelmezés szerint 8 bájtot foglal le minden referenciaváltozóhoz. | Mérete az adattípustól függ. |
Példa : Demo d1; | Példa : int szám=78; |
Memóriakiosztás és szemétgyűjtés
Java nyelven a új kulcsszó létrehozására szolgál példa az osztályból. Más szóval, kiosztással példányosít egy osztályt memória egy új objektumhoz, és egy hivatkozást ad vissza arra a memóriára. Az objektumok a Java kupactérben foglalják el a memóriát. Az új kulcsszót is használhatjuk a tömb objektum .
ClassName objectName = new ClassName();
Ha nincs hivatkozás egy objektumra, akkor az objektum által használt memória visszanyerhető a szemétgyűjtési folyamat során.
Konverzió a primitív típus és a referenciatípus között
A primitív típus referenciatípussá való átalakítását hívjuk autobox és a referenciatípus primitív típussá alakítását hívjuk kicsomagolás .
Referenciatípus összehasonlítása
A Java hivatkozási típusokat is összehasonlíthatjuk. A Java két módot kínál a referenciatípusok összehasonlítására:
Az egyenlő (==) operátor használatával
Összehasonlítja az objektumok memóriahelyeit. Ha mindkét objektum memóriacíme (hivatkozása) azonos, akkor az objektumok egyenlőek. Vegye figyelembe, hogy nem hasonlítja össze az objektum tartalmát. Például:
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
A String.equals() metódus használatával
A módszer a Húr osztály. Felülírja a egyenlő () módszere a Tárgy osztály . Ezenkívül az egyenlő operátort (==) használja a referenciatípus összehasonlításához. Vegyük például a következő kódrészletet:
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
Referenciatípus másolása
A referenciatípusok másolásakor két lehetőség van: vagy másolat készül az objektumra való hivatkozásról, vagy az objektum tényleges másolata (új másolat létrehozása).
A következő példában hivatkozást rendeltünk az objektumhoz. Ha bármilyen változtatást hajtottunk végre az objektumon, az a hivatkozást is tükrözi, és fordítva.
Sum s1 = new Sum(); Sum s2= s1;