Java poskytuje dva typy
Typy referencií Java
V jazyku Java existuje päť typov referenčných typov:
môže mať abstraktná trieda konštruktor
Typ referencie | Popis |
---|---|
Trieda | Je to súbor pokynov. Popisuje obsah objektu. |
Pole | Poskytuje dátovú štruktúru pevnej veľkosti, ktorá ukladá prvky rovnakého typu. |
Anotácie | Poskytuje spôsob, ako spojiť metadáta s programovými prvkami. |
Rozhranie | Je implementovaný triedami Java. |
Enumerácia | Ide o špeciálny druh triedy, ktorý je typovo bezpečný. Každý prvok vo vnútri enum je inštanciou tohto enum. |
Referenčné verzus primitívne dátové typy
Typ referencie | Primitívny typ |
---|---|
Nie je preddefinovaný okrem reťazca. | Je preddefinovaný v jazyku Java. |
Všetky typy odkazov začínajú veľkými písmenami. | Všetky primitívne typy začínajú malým písmenom. |
Neprimitívne typy majú všetky rovnakú veľkosť. | Veľkosť primitívneho typu závisí od typu údajov. |
Používa sa na vyvolanie alebo volanie metód. | Nemôžeme vyvolať metódu s primitívnym typom. |
Môže byť nulový. | Nemôže byť nulový. Vždy to má hodnotu. |
Príklady referenčných dátových typov sú trieda, polia, reťazec, rozhranie atď. | Príklady primitívnych dátových typov sú int, float, double, boolean, long atď. |
JVM štandardne prideľuje 8 bajtov pre každú referenčnú premennú. | Jeho veľkosť závisí od typu údajov. |
Príklad : Demo d1; | Príklad : int num=78; |
Alokácia pamäte a zber odpadu
V Jave, nové kľúčové slovo sa používa na vytvorenie príklad triedy. Inými slovami, vytvorí inštanciu triedy alokáciou Pamäť pre nový objekt a vrátenie odkazu na túto pamäť. Objekty zaberajú pamäť v priestore haldy Java. Nové kľúčové slovo môžeme použiť aj na vytvorenie objekt poľa .
ClassName objectName = new ClassName();
Ak neexistujú žiadne odkazy na objekt, pamäť používanú týmto objektom možno získať späť počas procesu zberu odpadu.
Konverzia medzi primitívnym typom a referenčným typom
Volá sa konverzia primitívneho typu na referenčný typ autoboxing a volá sa konverzia referenčného typu na primitívny typ rozbaľovanie .
odhlásiť sa z účtu Google v systéme Android
Porovnanie typu referencie
Porovnať môžeme aj referenčné typy v Jave. Java poskytuje dva spôsoby porovnávania referenčných typov:
Pomocou operátora rovná sa (==).
Porovnáva pamäťové miesta objektov. Ak je adresa pamäte (odkaz) oboch objektov rovnaká, objekty sú rovnaké. Všimnite si, že neporovnáva obsah objektu. Napríklad:
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
Pomocou metódy String.equals().
Metóda patrí medzi Reťazec trieda. Prepíše to rovná sa() metóda Objekt trieda . Používa tiež operátor rovná sa (==) na porovnanie typu odkazu. Zvážte napríklad nasledujúci útržok kódu:
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
Kopírovanie typu referencie
Pri kopírovaní typov odkazov existujú dve možnosti, buď sa vytvorí kópia odkazu na objekt, alebo sa vytvorí skutočná kópia (vytvorenie novej kópie) objektu.
bublinové triedenie v algoritme
V nasledujúcom príklade sme objektu priradili referenciu. Ak sme v objekte urobili nejaké zmeny, bude to odrážať aj referenciu a naopak.
Sum s1 = new Sum(); Sum s2= s1;