Java tarjoaa kahdenlaisia
Java-viitetyypit
Javassa on seuraavat viisi viitetyyppiä:
java-taulukko luetteloon
Viitetyyppi | Kuvaus |
---|---|
Luokka | Se on joukko ohjeita. Se kuvaa objektin sisältöä. |
Array | Se tarjoaa kiinteän kokoisen tietorakenteen, joka tallentaa samantyyppiset elementit. |
Huomautukset | Se tarjoaa tavan yhdistää metatiedot ohjelman elementteihin. |
Käyttöliittymä | Sen toteuttavat Java-luokat. |
Luettelo | Se on erityinen luokka, joka on tyyppiturvallinen. Jokainen enumin sisällä oleva elementti on kyseisen enumin esiintymä. |
Viite vs primitiiviset tietotyypit
Viitetyyppi | Primitiivinen tyyppi |
---|---|
Se ei ole ennalta määritetty paitsi merkkijono. | Se on ennalta määritetty Javassa. |
Kaikki viittaustyypit alkavat isolla kirjaimella. | Kaikki primitiivinen tyyppi alkaa pienellä kirjaimella. |
Ei-primitiiviset tyypit ovat kaikki samankokoisia. | Primitiivityypin koko riippuu tietotyypistä. |
Sitä käytetään menetelmien kutsumiseen tai kutsumiseen. | Emme voi kutsua menetelmää primitiivisellä tyypillä. |
Se voi olla nolla. | Se ei voi olla tyhjä. Sillä on aina arvoa. |
Esimerkkejä viitetietotyypeistä ovat class, Arrays, String, Interface jne. | Esimerkkejä primitiivisistä tietotyypeistä ovat int, float, double, Boolean, long jne. |
JVM varaa oletusarvoisesti 8 tavua kullekin viitemuuttujalle. | Sen koko riippuu tietotyypistä. |
Esimerkki : Demo d1; | Esimerkki : int numero = 78; |
Muistin jakaminen ja roskien kerääminen
Javassa, uusi avainsana käytetään luomaan ilmentymä luokasta. Toisin sanoen se instantoi luokan allokoimalla muisti uudelle objektille ja palauttaa viittauksen tähän muistiin. Objektit vievät muistia Java-kekotilassa. Voimme myös käyttää uutta avainsanaa luomaan taulukkoobjekti .
ClassName objectName = new ClassName();
Jos objektiin ei ole viittauksia, objektin käyttämä muisti voidaan ottaa takaisin roskienkeräysprosessin aikana.
Muunnos primitiivityypin ja viitetyypin välillä
Primitiivisen tyypin muuntamista viitetyypiksi kutsutaan autoboxing ja viitetyypin muuntamista primitiivityypiksi kutsutaan pakkauksen avaaminen .
Viitetyypin vertailu
Voimme myös vertailla viitetyyppejä Javassa. Java tarjoaa kaksi tapaa vertailla viitetyyppejä:
Käyttämällä yhtäläisyysoperaattoria (==).
Se vertaa objektien muistipaikkoja. Jos molempien objektien muistiosoite (viite) on sama, objektit ovat samanarvoisia. Huomaa, että se ei vertaa objektin sisältöä. Esimerkiksi:
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
Käyttämällä String.equals()-menetelmää
Menetelmä kuuluu merkkijono luokkaa. Se ohittaa on yhtä suuri () menetelmä Esine luokkaa . Se käyttää myös yhtäläisyysoperaattoria (==) vertailutyypin vertailuun. Harkitse esimerkiksi seuraavaa koodinpätkää:
hrithik roshan
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
Kopioinnin viitetyyppi
Viitetyyppejä kopioitaessa on kaksi vaihtoehtoa, joko tehdään kopio viittauksesta objektiin tai tehdään varsinainen kopio (uusi kopio) objektista.
Seuraavassa esimerkissä olemme määrittäneet viittauksen objektiin. Jos teimme muutoksia objektiin, se heijastaa myös viittausta ja päinvastoin.
Sum s1 = new Sum(); Sum s2= s1;