|
|
Postitatud 07.04.2015 16:19:13
|
|
|

Andmetüübid on mälu asukohtade abstraktsed avaldised. Programmeerijad saavad kasutada mitmesuguseid andmetüüpe: mõned on määratletud programmeerimiskeeltega, mõned väliste teekidega ja teised programmeerijate poolt määratletud. Paljud programmeerimiskeeled tuginevad kindlatele arvutitüüpidele ja konkreetsetele kompileeritud andmetüüpide omaduste rakendustele, nagu sõna- ja täisarvuliste andmetüüpide suurus. Teisest küljest vastutab Java virtuaalmasin kõigi sisseehitatud andmetüüpide aspektide määratlemise eest. See tähendab, et ükskõik kui madala taseme operatsioonisüsteem Java Virtual Machine (JVM) töötab, on andmetüüpide omadused täpselt samad.
Lihtsad andmetüübid Lihtsad andmetüübid on andmetüübid, mida enam ei saa lihtsustada, sisseehitatud andmetüübid, mida määratlevad programmeerimiskeeled ning mis esindavad reaalarvu, märke ja täisarvu. Suuremaid ja keerukamaid andmetüüpe saab määratleda lihtsate andmetüüpide kombinatsiooniga. Enamasti on lihtsatel andmetüüpidel riistvaralised ekvivalendid. Näiteks int lihtsad tüübid salvestatakse mõnikord 32-bitistes riistvararegistrites. Java pakub mitut klassi lihtsaid andmetüüpe, mis esindavad numbreid ja tähemärke.
Lihtsad andmetüübid jagunevad tavaliselt järgmistesse kategooriatesse: reaalarvud, täisarvud, märgid ja boole'id. Need kategooriad hõlmavad omakorda mitmesuguseid lihtsaid tüüpe. Näiteks defineerib Java kaks lihtsat tüüpi: float ja double, mis kuuluvad reaalarvude kategooriasse, ning ülejäänud neli lihtsat tüüpi: bait, lühike, int ja pikk kõik kuuluvad täisarvude kategooriasse. On olemas ka lihtne tüüp, Char, mis omistatakse tegelase tüübile. On olemas ainult üks lihtne boole'i kategooria tüüp: boolean. Tabel A kirjeldab lihtsaid andmetüüpe Javas.
Tabel A Java lihtsad andmetüübid Lihtne kirjatüübi suurus, vahemik/täpsus float 4 baidi 32-bitine IEEE 754 ühe täpsusega kahekordne 8-baidine 64-bitine IEEE 754 topelttäpsus Bait 1 bait -128 kuni 127 - Short 2 baiti - 32 768 kuni 32 767 int 4 baiti - 2 147 483 648 kuni 2 147 483 647 Pikk 8 baiti - 9 223 372 036 854 775 808 kuni 9 223 372 036, 854 775 807 kogu Unicode märgistiku 2 baiti boolean 1 bit Tõene või väär
Lihtsad andmetüübid Javas Kõik Java numbrilised muutujad on allkirjastatud ning Java ei luba suvalist teisendamist andmetüüpide vahel. Numbriliste muutujate vahel on võimalik ainult tüübi teisendamine. Näiteks ei saa booleani teisendada teisteks andmetüüpideks ega teisi andmetüüpe boole'iks.
Kuna Java lihtsad andmetüübid on täpselt määratletud ja otsene mälule ligipääs ei ole lubatud, eemaldatakse Java keeles operaatori suurus.
Java lihtsad andmetüübid ei ole objektid. Selleks, et võtta objektorienteeritud lähenemine Java lihtsatele andmetüüpidele, tuleb need esmalt kapseldada klassidesse.
Pakett Java pakub ka sisseehitatud kapseldamisklasse nagu Byte, Short, Boolean, Character, Integer, Double, Float ja Long. Need wrapper-klassid pakuvad väga intuitiivset ja praktilist lähenemist. Näiteks Byte, Float, Integer, Long ja Double klassidel on kõik doubleValue() meetod, mis võimaldab teisendada klassi eksemplarides salvestatud väärtusi Double tüüpideks. Samuti pakuvad kõik kapseldatud klassid staatilist väärtusOf(Strings) meetodit, et teisendada antud string vastavaks lihtsaks tüübiks. Loetelu A kood demonstreerib mõningaid nende kapseldamisklasside kasutust.
Lihtne andmetüübi initsialiseerimine Java-s initsialiseeritakse lihtsad andmetüübid automaatselt vaikimisi, kui need deklareeritakse klassi liikmesmuutujatena, välja arvatud juhul, kui see on selgelt deklareeritud. Lihtsad andmetüübid on meetodid, mis deklareerivad lokaalseid muutujaid, mida automaatselt ei initsialiseerita, ning põhjustavad kompilaatori veateate nagu järgmine: "Muutuja x ei pruugi olla initsialiseeritud." Tabel B määratleb lihtsate andmetüüpide vaikimisi väärtused Javas. Tabel B vaikimisi Java lihtsate andmetüüpide jaoks liik Vaikimisi Boolean
false Bait
0 lühike
0 int
0 Pikk
0 Char ′/u0000′ Float
0.0 Kahekordne
0.0
Vaikimisi vaikimisi väärtused Java lihtsate andmetüüpide jaoks Loetelu B kood näitab, et kõik Java lihtsad andmetüübid kasutavad inisialiseerimise klassi liikmemuutujaid. See näide näitab ka, et int muutuja deklareeritakse lokaalselt Initialization klassi konstruktoris. Ilma ülaltoodud koodi muutmata viskab kompilaator ülaltoodud koodi kompileerimisel vea. Kui koodirida, mis probleemi põhjustas (kood, mis viitab initsialiseerimata muutujale, mis vea põhjustas) on kustutatud või kommenteeritud. Pärast programmi edukat kompileerimist ja käivitamist kuvatakse järgmised tulemused:
byte: 0
short: 0
int: 0
long: 0
float: 0.0
double: 0.0
char: 0
boolean: false Samuti saame liikmemuutujad eksplicitselt initsialiseerida teistele väärtustele, nagu on näidatud järgmises koodis: bait b = 5; lühike s = 123; int i = 1234; pikk l = 12345; float f = 123,45f; kahekordne d = 12345,678; char c = ′A′; boolean z = tõene;
Kokkuvõte Java määratleb täieliku hulga lihtsaid andmetüüpe. Lisaks eemaldab Java riistvara ja kompilaatori sõltuvused, mis muutuvad keeleks, võimaldades programmeerijatel suunata tähelepanu teistele probleemidele
|
Eelmine:JDK, JRE, JVM erinevused ja seosedJärgmine:Photoshop töötab, palun desinstalli ja paigalda see toode uuesti, kuidas lahendada veakood 16?
|