|
|
Julkaistu 7.4.2015 16.19.13
|
|
|

Tietotyypit ovat abstrakteja lausekkeita muistin paikoista. Ohjelmoijat voivat hyödyntää monenlaisia tietotyyppejä: osa määritellään ohjelmointikielillä, osa ulkoisilla kirjastoilla ja osa ohjelmoijien määrittelemä. Monet ohjelmointikielet perustuvat tiettyihin tietokonetyyppeihin ja tietotyyppien ominaisuuksiin, kuten sana- ja kokonaislukutietotyyppien kokoon. Toisaalta Javan virtuaalikone vastaa kaikkien sisäänrakennettujen tietotyyppien määrittelystä. Tämä tarkoittaa, että riippumatta siitä, kuinka matalan tason käyttöjärjestelmä Java Virtual Machine (JVM) toimii, tietotyyppien ominaisuudet ovat täsmälleen samat.
Yksinkertaiset tietotyypit Yksinkertaiset tietotyypit ovat tietotyyppejä, joita ei enää voi yksinkertaistaa, sisäänrakennettuja tietotyyppejä, jotka on määritelty ohjelmointikielillä ja jotka edustavat reaalilukuja, merkkejä ja kokonaislukuja. Suuremmat ja monimutkaisemmat tietotyypit voidaan määritellä yksinkertaisten tietotyyppien yhdistelmällä. Useimmissa tapauksissa yksinkertaisilla tietotyypeillä on laitteistovastineensa. Esimerkiksi älykkyystyypit tallennetaan joskus 32-bittisiin laitteistorekistereisiin. Java tarjoaa useita yksinkertaisia tietotyyppejä, jotka edustavat lukuja ja merkkejä.
Yksinkertaiset tietotyypit jaetaan tyypillisesti seuraaviin kategorioihin: reaaliluvut, kokonaisluvut, merkit ja totuusarvot. Nämä kategoriat puolestaan sisältävät erilaisia yksinkertaisia tyyppejä. Esimerkiksi Java määrittelee kaksi yksinkertaista tyyppiä: float ja double, jotka kuuluvat reaalilukukategoriaan, ja muut neljä yksinkertaista tyyppiä: byte, short, int ja long, kuuluvat kaikki kokonaislukukategoriaan. On myös yksinkertainen tyyppi, char, joka liitetään hahmotyypille. On olemassa vain yksi yksinkertainen totuuskategorian tyyppi: boolean. Taulukko A esittelee Javan yksinkertaiset tietotyypit.
Taulukko A Java-yksinkertaiset tietotyypit Yksinkertainen kirjasinkoon vaihteluväli/tarkkuus float 4 tavun 32-bittinen IEEE 754 yksitarkkuus tupla 8 tavua 64-bittinen IEEE 754 kaksoistarkkuus Tavu 1 tavu -128–127 - Short 2 tavua - 32 768–32 767 int 4 tavua - 2 147 483 648 - 2 147 483 647 Pitkät 8 tavua - 9 223 372 036 854 775 808 - 9 223 372 036, 854 775 807 koko Unicode-merkistöjoukon hahmo 2 tavua boolean 1 bitti Tosi vai epätosi
Yksinkertaiset tietotyypit Javassa Kaikki numeeriset muuttujat Javassa allekirjoitetaan, eikä Java salli mielivaltaista muunnosta tietotyyppien välillä. Vain tyyppimuunnos on mahdollista numeeristen muuttujien välillä. Esimerkiksi totuusarvoa ei voi muuntaa muiksi tietotyypeiksi, eikä muita tietotyyppejä voi muuntaa booleaniksi.
Koska Javan yksinkertaiset tietotyypit määritellään tarkasti eikä suora muistikäyttö ole sallittua, operaattorin koko poistetaan Java-kielestä.
Javan yksinkertaiset tietotyypit eivät ole objekteja. Jotta Java-yksinkertaisiin tietotyyppeihin voisi lähestyä olio-olentoja, sinun täytyy ensin kapseloida ne luokkiin.
Paketti Java tarjoaa myös sisäänrakennettuja kapselointiluokkia, kuten Byte, Short, Boolean, Character, Integer, Double, Float ja Long. Nämä wrapper-kurssit tarjoavat erittäin intuitiivisen ja käytännöllisen lähestymistavan. Esimerkiksi Byte-, Float-, Integer-, Long- ja Double-luokilla on doubleValue()-metodi, jonka avulla voit muuntaa arvot luokan instansseihin tallennetuiksi Double-tyypeiksi. Lisäksi kaikki kapseloidut luokat tarjoavat staattisen valueOf(Strings)-menetelmän, jolla muunnetaan annettu merkkijono vastaavaan yksinkertaiseen tyyppiin. Listauksen A koodi havainnollistaa joitakin näiden kapselointiluokkien käyttöä.
Yksinkertainen tietotyypin alustus Javassa yksinkertaiset tietotyypit alustetaan automaattisesti oletuksena, kun ne on määritelty luokan jäsenmuuttujiksi, ellei niitä ole nimenomaisesti määritelty. Yksinkertaiset tietotyypit ovat metodeja, jotka ilmoittavat paikallisia muuttujia, joita ei automaattisesti alusteta ja jotka saavat kääntäjän lähettämään virheilmoituksen, kuten seuraavan: "Muuttuja x ei välttämättä ole alustanut." Taulukko B määrittelee oletusarvot yksinkertaisille tietotyypeille Javassa. Taulukko B oletukset Java-yksinkertaisille tietotyypeille tyyppi Laiminlyönti Boolean
false Tavu
0 lyhyt
0 int
0 Pitkä
0 Char ′/u0000′ Kellunta
0.0 tupla
0.0
Oletusarvot Java-yksinkertaisille tietotyypeille Luettelon B koodi osoittaa, että kaikki Java-yksinkertaiset tietotyypit käyttävät Initialization-luokan jäsenmuuttujia. Tämä esimerkki osoittaa myös, että int-muuttuja julistetaan paikallisesti Initialization-luokan konstruktorissa. Ilman yllä olevan koodin muuttamista kääntäjä antaa virheen käännettäessä yllä olevaa koodia. Kun ongelman aiheuttanut koodirivi (koodi, joka viittaa virheen aiheuttavaan alustamattomaan muuttujaan) on poistettu tai kommentoitu pois. Kun ohjelma on onnistuneesti käännetty ja suoritettu, näytetään seuraavat tulokset:
byte: 0
short: 0
int: 0
long: 0
float: 0.0
double: 0.0
char: 0
boolean: false Voimme myös alustoida jäsenmuuttujat eksplisiittisesti muille arvoille, kuten seuraavassa koodissa on esitetty: tavu b = 5; lyhyt s = 123; int i = 1234; pitkä l = 12345; kelluva f = 123,45f; tuplad d = 12345,678; hahmo c = ′A′; Boolean z = tosi;
Yhteenveto Java määrittelee täydellisen joukon yksinkertaisia tietotyyppejä. Lisäksi Java poistaa laitteisto- ja kääntäjäriippuvuudet, jotka muodostavat kielen, jolloin ohjelmoijat voivat ohjata huomionsa muihin asioihin
|
Edellinen:JDK, JRE, JVM erot ja yhteydetSeuraava:Photoshop käynnissä, poista ja asenna tämä tuote uudelleen, miten korjata virhekoodi 16?
|