Java oferă două tipuri de
Tipuri de referință Java
Există următoarele cinci tipuri de tipuri de referință în Java:
dezactivați modul dezvoltator
Tip de referință | Descriere |
---|---|
Clasă | Este un set de instrucțiuni. Descrie conținutul obiectului. |
Matrice | Acesta oferă structura de date de dimensiuni fixe care stochează elementele de același tip. |
Adnotări | Oferă o modalitate de a asocia metadatele cu elementele programului. |
Interfață | Este implementat de clase Java. |
Enumerare | Este un tip special de clasă care este sigură. Fiecare element din interiorul enumerarii este o instanță a acelei enumerari. |
Tipuri de date de referință vs primitive
Tip de referință | Tipul primitiv |
---|---|
Nu este predefinit, cu excepția șirului. | Este predefinit în Java. |
Toate tipurile de referință începe cu literă mare. | Toate tipurile primitive începe cu o literă mică. |
Tipurile non-primitive au toate aceeași dimensiune. | Mărimea unui tip primitiv depinde de tipul de date. |
Este folosit pentru a invoca sau a apela metode. | Nu putem invoca metoda cu un tip primitiv. |
Poate fi nulă. | Nu poate fi nulă. Are întotdeauna valoare. |
Exemple de tipuri de date de referință sunt class, Arrays, String, Interface etc. | Exemple de tipuri de date primitive sunt int, float, double, boolean, long etc. |
JVM alocă 8 octeți pentru fiecare variabilă de referință, în mod implicit. | Mărimea acestuia depinde de tipul de date. |
Exemplu : Demo d1; | Exemplu : int num=78; |
Alocarea memoriei și colectarea gunoiului
În Java, cuvânt cheie nou este folosit pentru a crea un instanță a clasei. Cu alte cuvinte, instanțiază o clasă prin alocare memorie pentru un obiect nou și returnând o referință la acea memorie. Obiectele ocupă memorie în spațiul heap Java. De asemenea, putem folosi noul cuvânt cheie pentru a crea obiect matrice .
ClassName objectName = new ClassName();
Dacă nu există referințe la un obiect, memoria folosită de acel obiect poate fi recuperată în timpul procesului de colectare a gunoiului.
Conversie între tipul primitiv și tipul de referință
Se apelează conversia tipului primitiv în tipul de referință autoboxing iar conversia tipului de referință în tipul primitiv este numită unboxing .
powershell mai mare sau egal
Compararea tipului de referință
De asemenea, putem compara tipurile de referință în Java. Java oferă două moduri de a compara tipurile de referință:
Prin utilizarea operatorului egal (==).
Compară locațiile de memorie ale obiectelor. Dacă adresa de memorie (referința) a ambelor obiecte este aceeași, obiectele sunt egale. Rețineți că nu compară conținutul obiectului. De exemplu:
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
Folosind metoda String.equals().
Metoda aparține Şir clasă. Ea trece peste este egal() metoda de Obiect clasă . De asemenea, folosește operatorul egal (==) pentru compararea tipului de referință. De exemplu, luați în considerare următorul fragment de cod:
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
Copierea tipului de referință
Există două posibilități atunci când copiem tipuri de referință, fie se face o copie a referinței la un obiect, fie se realizează o copie reală (crearea unei noi copii) a obiectului.
svm
În exemplul următor, am atribuit o referință obiectului. Dacă am făcut modificări în obiect, acesta va reflecta și referința și invers.
Sum s1 = new Sum(); Sum s2= s1;