Java gir to typer
Java-referansetyper
Det er følgende fem typer referansetyper i Java:
Referansetype | Beskrivelse |
---|---|
Klasse | Det er et sett med instruksjoner. Den beskriver innholdet i objektet. |
Array | Det gir datastrukturen med fast størrelse som lagrer elementene av samme type. |
Merknader | Det gir en måte å knytte metadata til programelementer. |
Grensesnitt | Det er implementert av Java-klasser. |
Oppregning | Det er en spesiell type klasse som er typesikker. Hvert element inne i enumet er en forekomst av det enumet. |
Referanse vs primitive datatyper
Referansetype | Primitiv type |
---|---|
Den er ikke forhåndsdefinert bortsett fra strengen. | Det er forhåndsdefinert i Java. |
Alle referansetyper begynner med stor bokstav. | All primitiv type begynner med en liten bokstav. |
Ikke-primitive typer har alle samme størrelse. | Størrelsen på en primitiv type avhenger av datatypen. |
Den brukes til å påkalle eller kalle metoder. | Vi kan ikke påberope oss metoden med en primitiv type. |
Den kan være null. | Den kan ikke være null. Det har alltid verdi. |
Eksempler på referansedatatyper er klasse, Arrays, String, Interface, etc. | Eksempler på primitive datatyper er int, float, double, boolsk, lang, etc. |
JVM tildeler 8 byte for hver referansevariabel, som standard. | Størrelsen avhenger av datatypen. |
Eksempel : Demo d1; | Eksempel : int num=78; |
Minnetildeling og søppelinnsamling
I Java er nytt søkeord brukes til å lage en forekomst av klassen. Med andre ord, instansierer den en klasse ved å tildele hukommelse for et nytt objekt og returnere en referanse til det minnet. Objekter opptar minne i Java-haugen. Vi kan også bruke det nye nøkkelordet for å lage array-objekt .
ClassName objectName = new ClassName();
Hvis det ikke er noen referanser til et objekt, kan minnet som brukes av det objektet gjenvinnes under søppelinnsamlingsprosessen.
Konvertering mellom primitiv type og referansetype
Konverteringen av primitiv type til referansetype kalles autoboksing og konverteringen av referansetype til primitiv type kalles unboxing .
Sammenligning av referansetype
Vi kan også sammenligne referansetypene i Java. Java gir to måter å sammenligne referansetyper på:
Ved å bruke operatoren lik (==).
Den sammenligner minneplasseringene til objektene. Hvis minneadressen (referansen) til begge objektene er den samme, er objektene like. Merk at den ikke sammenligner innholdet i objektet. For eksempel:
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
Ved å bruke String.equals()-metoden
Metoden tilhører String klasse. Den overstyrer er lik() metoden for Gjenstand klasse . Den bruker også like-operatoren (==) for å sammenligne referansetypen. Tenk for eksempel på følgende kodebit:
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
Kopier referansetype
Det er to muligheter når vi kopierer referansetyper, enten lages en kopi av referansen til et objekt eller en faktisk kopi (oppretter en ny kopi) av objektet.
I følgende eksempel har vi tildelt en referanse til objektet. Hvis vi har gjort endringer i objektet, vil det også gjenspeile referansen og omvendt.
Sum s1 = new Sum(); Sum s2= s1;