Mitkä ovat Java-kielessä käytettävät eri tietotyypit?
Java tarjoaa kahdeksan primitiivistä tietotyyppiä ja lukuisia monimutkaisia tietotyyppejä. Nämä määrittävät, mitkä arvot voidaan tallentaa ja näyttää muuttujassa. Tietyt tietotyypit on määritetty kaikille muuttujille Java-kielessä.
Mitä tietotyyppejä Java sisältää?
Jokaisessa ohjelmointikielessä on erilaisia tietotyyppejä, jotka sisältävät tiettyjä objekteja ja määriteltyjä operaatioita. Vaikka eri kielten tarjoamat tietotyyppivaihtoehdot ovat usein keskenään samankaltaisia, joskus niissä on merkittäviä eroja. Jos esimerkiksi verrataan Python- ja Java-kieliä ja niiden tietotyyppejä, huomaa niiden välisiä yhtäläisyyksiä, mutta myös lukuisia eroja, jotka tekevät kielistä sopivia erilaisiin tehtäviin.
Java käyttää kahta erilaista tietotyyppiä: primitiivisiä ja monimutkaisia. Monimutkaisia tietotyyppejä kutsutaan myös viitetyypeiksi. Primitiiviset ja monimutkaiset tietotyypit eroavat toisistaan koon suhteen ja määräävät, mitä arvoja muuttujaan voidaan tallentaa. Primitiiviset tietotyypit voivat tallentaa vain yksinkertaisia arvoja, kun taas viitetyyppejä käytetään monimutkaisempien rakenteiden luomiseen sekä suurten tietomäärien järjestämiseen ja käsittelyyn.
Jos haluat oppia koodaamaan, on tärkeää tuntea eri tietotyypit ja osata hyödyntää niitä parhaalla mahdollisella tavalla. Tietotyyppien parhaan käytön ymmärtäminen ei ole vain niiden toiminnallisuuden ymmärtämistä, vaan myös niiden käyttämän (tai säästämän) muistin määrän ymmärtämistä.
Mitkä ovat primitiiviset tietotyypit Java-kielessä?
Java-kielessä on yhteensä kahdeksan erilaista primitiivistä tietotyyppiä, jotka sisältävät tarkasti määritellyt arvoalueet. Ne voidaan jakaa neljään luokkaan: loogiset tietotyypit, kokonaislukutyypit, liukuluku- ja merkkityypit. Niillä ei ole lisäominaisuuksia, ja niitä kutsutaan myös elementaarisiksi tietotyypeiksi. Jokaisella tietotyypillä on kiinteä bittimäärä. Seuraavassa käsitellään primitiivisiä tietotyyppejä tarkemmin. Java käyttää seuraavia primitiivisiä tyyppejä:
- boolean
- bitti
- lyhyt
- int tai kokonaisluku
- pitkä
- float
- double
- merkk
boolean
Java-kielen boolean-tietotyyppi ei ole numeerinen tyyppi. Se tarjoaa vain kaksi mahdollista arvoa: true ja false. Sitä voidaan käyttää määrittämään, täyttyykö ehto (true) vai ei (false). Se on looginen tietotyyppi, jonka oletusarvo on false. Se koostuu yhdestä bitistä ja sen syntaksi on seuraava:
boolean booleanVar;javabyte
byte on kokonaislukutyyppi, joka esitetään kahden komplementin arvona, jonka koko on 8 bittiä tai 1 tavu. Sitä käytetään tyypillisesti muistin säästämiseen suuremmissa taulukoissa. Sen arvoalue on -128–127, ja sen oletusarvo on 0. Sen syntaksi on seuraava:
byte byteVar;javashort
short on myös yksi Java-kielessä käytetyistä integraalidatatyypeistä, ja sitä käytetään pääasiassa muistia säästämään suuremmissa taulukoissa. Kaksinkertaisen komplementin arvo on 16 bittiä tai 2 tavua, ja sen arvoalue ulottuu -32768:sta 32767:ään. Oletusarvoisesti sen arvo on 0. Näin short käytetään:
short shortVarjavaint tai kokonaisluku
int tai kokonaisluku on myös kahden komplementin arvo ja kokonaislukutyyppi, jonka koko on 4 tavua tai 32 bittiä. Sen arvoalue sisältää kokonaisluvut välillä -2147483648 ja 2147483647, ja sen oletusarvo on 0. Sen syntaksi on seuraava:
int intVarjavalong
Suurin kokonaislukutyyppi on long. Tämä koskee ensinnäkin sen arvoaluetta, joka on välillä -9223372036854775808 ja 9223372036854775807, ja toiseksi sen kokoa, joka on 8 tavua tai 64 bittiä. Kaksin komplementtiarvoa käytetään siis, jos muut kokonaislukutyypit eivät riitä. Se vaatii kuitenkin myös selvästi eniten muistia. Sen oletusarvo on 0. Sen syntaksi on seuraava:
lomg longVarjavafloat
float on liukulukuinen tietotyyppi, jota käytetään reaalilukujen tallentamiseen. Sen koko on 32 bittiä ja se noudattaa IEEE 754 -standardia, joka määrittelee binääri- ja desimaaliliukulukuisten lukujen standardiesityksen tietokoneissa. Standardiarvo float on 0,0 ja sen arvoalueella voidaan esittää enintään seitsemän desimaalia. Verrattuna double-tyyppiin float ei kuitenkaan ole yhtä tarkka, joten sitä ei tulisi käyttää arvoissa, joissa tarkkuudella on ratkaiseva merkitys. Jos näin ei ole, voit käyttää float tilan säästämiseksi. float n syntaksi on seuraava:
float floatVar;javadouble
double on noin kaksi kertaa tarkempi kuin float ja täyttää samanlaisen tarkoituksen. Sen koko on 64 bittiä ja se voi edustaa jopa 16 desimaalia. Sen oletusarvo on myös 0,0. Jos tarvitset tarkempia arvoja, sinun tulee aina käyttää double, vaikka tämä tietotyyppi ei olekaan kovin tarkka. Jos haluat työskennellä täysin tarkkojen arvojen kanssa, sinun tulisi käyttää sen sijaan BigDecimal-luokkaa. double n syntaksi on seuraava:
double doubleVar;javachar
char on merkkitietotyyppi. Se tallentaa merkkejä Unicode-merkistöön perustuen, mikä mahdollistaa siirrettävyyden useille eri alustoille. Jokainen merkki vaatii 2 tavua muistia. Sen arvoalue vastaa ASCII-merkistöä (American Standard Code for Information Interchange) ja sijaitsee välillä ‘\u0000’ (eli 0) ja ‘\uffff’ (vastaa 65535). Char-tyypin oletusarvo on ‘\u0000’ ja sen syntaksi on seuraava:
char charVarjavaMitä ovat monimutkaiset tietotyypit Java-kielessä?
Toinen Java-tietotyyppien tyyppi ovat viitetyypit, joita kutsutaan myös monimutkaisiksi tietotyypeiksi. Niitä kutsutaan viitetyypeiksi, koska ne viittaavat objekteihin. Toisin kuin primitiiviset tietotyypit, ne eivät yleensä ole ennalta määriteltyjä, vaan ohjelmoija määrittelee ne (poikkeuksena merkkijono). Ne voivat käyttää metodeja ja niillä voi olla myös arvo 0 (tyhjänä). Primitiiviset tietotyypit alkavat pienellä kirjaimella, mutta viitetyypit alkavat isolla kirjaimella. Tässä tarkastellaan tärkeimpiä viitetyyppejä.
Jouset
String on luokka, jota voidaan käyttää merkkijonon esittämiseen, mikä erottaa tämän monimutkaisen tietotyypin primitiivisestä tietotyypistä char sekä muista tietotyypeistä. Merkkijono on objekti luokassa java.lang. String-luokan eri menetelmillä voit tarkastella merkkijonon yksittäisiä merkkejä, verrata merkkijonoja keskenään, etsiä merkkijonoja ja kopioida merkkijonoja. Merkkijonot tunnistetaan lainausmerkeillä. Tämän viitetyypin syntaksi on seuraavanlainen:
<string_type> <string_variable> = "<string_sequence>";javaTässä on esimerkki merkkijonojen toiminnasta:
// How to create a string without a new operator
String a = "This is your new string";
/ / How to create a string with a new operator
String a1 = new string ("This is your new string");javaTaulukot
Taulukoita käytetään useiden arvojen tallentamiseen muuttujaan sen sijaan, että luotaisiin eri muuttujia jokaiselle yksittäiselle arvolle. Ne luodaan hakasulkeilla. Tallennetut arvot sijoitetaan aaltosulkeisiin ja erotetaan toisistaan pilkuilla. Tässä on taulukoiden syntaksi:
dataType[] arrayName = {value1, value2, value3,…};javaJos haluat luoda merkkijonoista koostuvan taulukon, voit tehdä sen seuraavasti:
String[] colors = {"blue", "red", "yellow", "purple"};javaNäin luot taulukon kokonaisluvuilla:
int[] figures = {5, 10, 15, 20};javaLuokat
Java-kielessä luokat ovat tietotyyppejä, jotka toimivat mallina objektien luomisessa. Ne sisältävät erilaisia komponentteja, kuten luokan nimen, muokkaimet ja aaltosulkeissa olevan rungon. Tässä on esimerkki siitä, miltä luokka näyttää Java-kielessä:
public class Main {
int a = 10;
}javaRajapinnat
Java-kielessä rajapinta on abstrakti luokka. Se toimii rajapintana, jonka kautta luokka voi käyttää erilaisia toimintoja. Tätä varten sen on kuitenkin ensin toteutettava ne. Rajapinnat sisältävät vain vakioita ja abstrakteja metodeja. Niiden syntaksi näyttää tältä:
interface {
abstract methods
}javaEsitämme tässä yksinkertaisen esimerkin, joka havainnollistaa rajapintojen toimintaa:
interface Pizza {
public void ingredientsList();
public void preparation();
}
class Mushroom implements Pizza {
public void ingredientsList() {
System.out.println("mushrooms, tomato sauce, oregano, mozzarella");
}
public void preparation() {
System.out.println("The pizza will be ready in 15 minutes.");
}
}
class Main {
public static void main(String[] args) {
Mushroom myMushroom = new Mushroom();
myMushroom.ingredientsList();
myMushroom.preparation();
}
}javaJava-komennon System.out.println vastaava tulos näyttää tältä:
mushrooms, tomato sauce, oregano, mozzarella
The pizza will be ready in 15 minutes.javaEsineet
Java-kielessä objektit ovat myös monimutkainen tietotyyppi. Objektit ovat luokkien instansseja, jotka voivat olla vuorovaikutuksessa keskenään menetelmien avulla. Seuraavassa esimerkissä luomme useita objekteja Main-luokkaan:
public class Main {
int a = 10;
public static void main(String[] args) {
Main myObj1 = new Main();
Main myObj2 = new Main();
System.out.println(myObj1.a);
System.out.println(myObj2.a);
}
}javaTulostus näyttää tältä:
10
10javaEnumit
Enumit ovat erityinen luokka, jonka avulla voit sisällyttää muuttumattomia vakioita koodiisi. Näille muuttujille annetaan kiinteät arvot, joita ei voi muuttaa. Tämä tietotyyppi on erityisen hyödyllinen, jos tarvitset muuttujia, joilla voi olla vain muutama mahdollinen tila. Enumin syntaksi näyttää tältä:
enum NameOfTheClass {
VALUE1,
VALUE2,
VALUE3
}java