Java nudi dvije vrste
Java referentni tipovi
U Javi postoji sljedećih pet tipova referentnih tipova:
osnovni pojas vs širokopojasni
Vrsta reference | Opis |
---|---|
Klasa | To je skup uputa. Opisuje sadržaj objekta. |
Niz | Pruža strukturu podataka fiksne veličine koja pohranjuje elemente iste vrste. |
Bilješke | Omogućuje način povezivanja metapodataka s elementima programa. |
Sučelje | Implementiran je Java klasama. |
Nabrajanje | To je posebna vrsta klase koja je sigurna za tip. Svaki element unutar enuma je instanca tog enuma. |
Referenca naspram primitivnih tipova podataka
Vrsta reference | Primitivni tip |
---|---|
Nije unaprijed definiran osim niza. | To je unaprijed definirano u Javi. |
Sve vrste referenci počinju velikim slovom. | Svi primitivni tipovi počinju malim slovom. |
Neprimitivni tipovi imaju sve iste veličine. | Veličina primitivnog tipa ovisi o tipu podataka. |
Koristi se za dozivanje ili pozivanje metoda. | Ne možemo pozvati metodu s primitivnim tipom. |
Može biti nula. | Ne može biti nula. Uvijek ima vrijednost. |
Primjeri referentnih tipova podataka su klasa, nizovi, nizovi, sučelje itd. | Primjeri primitivnih tipova podataka su int, float, double, Boolean, long, itd. |
JVM dodjeljuje 8 bajtova za svaku referentnu varijablu, prema zadanim postavkama. | Njegova veličina ovisi o vrsti podataka. |
Primjer : Demo d1; | Primjer : int num=78; |
Dodjela memorije i sakupljanje smeća
U Javi, nova ključna riječ koristi se za stvaranje primjer razreda. Drugim riječima, instancira klasu dodjeljivanjem memorija za novi objekt i vraćanje reference na tu memoriju. Objekti zauzimaju memoriju u Java heap prostoru. Također možemo koristiti novu ključnu riječ za stvaranje objekt niza .
ClassName objectName = new ClassName();
Ako nema referenci na objekt, memorija koju koristi taj objekt može se povratiti tijekom procesa skupljanja smeća.
Pretvorba između primitivnog tipa i referentnog tipa
Poziva se pretvorba primitivnog tipa u referentni tip autoboxing i poziva se konverzija referentnog tipa u primitivni tip Raspakirati .
Usporedba vrste reference
Također možemo usporediti referentne tipove u Javi. Java nudi dva načina za usporedbu referentnih tipova:
Korištenjem operatora jednakosti (==).
Uspoređuje memorijske lokacije objekata. Ako je memorijska adresa (referenca) oba objekta ista, objekti su jednaki. Imajte na umu da ne uspoređuje sadržaj objekta. Na primjer:
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
Korištenjem metode String.equals().
Metoda pripada Niz razreda. Nadjačava jednako() metoda Objekt razreda . Također koristi operator jednakosti (==) za usporedbu referentnog tipa. Na primjer, razmotrite sljedeći isječak koda:
nedostaci online bankarstva
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
Kopiranje vrste reference
Postoje dvije mogućnosti kada kopiramo referentne tipove, ili se napravi kopija reference na objekt ili se napravi stvarna kopija (stvaranje nove kopije) objekta.
U sljedećem primjeru dodijelili smo referencu objektu. Ako smo napravili bilo kakve promjene u objektu, to će također odražavati referencu i obrnuto.
Sum s1 = new Sum(); Sum s2= s1;