Javassa tyypit jaetaan
Kaikkia tyyppejä voi tuttujen tyyppien tapaan käyttää muuttujien määrittelemisessä, muodollisen parametrin tyypinä, metodin tyyppinä, ...
Literaalivakioilla tarkoitetaan ohjelmatekstiin kirjoitettuja vakioita, esim. 1, 3.14, true, ..., joilla ei ole nimeä. Ne siis ymmärretään "kirjaimellisesti".
Nimetyt vakiot ovat "muuttujia, jotka on määritelty muuttumattomiksi", esimerkiksi
final int VAKIOLUKU = 12345;Nimettyjä vakiota käsitellään luvussa 4.2.
Huom: Javassa boolean ei ole kokonaisluku eikä kokonaisluku ole boolean (esim. C:n tapaan; Javassa numeerisen arvon voi muuttaa totuusarvoksi esim. vertailulla x!=0).
Literaalivakiot kirjoitetaan tuttuun tapaan: 1, -54, 0, ...
[Ns. oktaali- ja heksadesimaaliarvoille on oma esitysmuotonsa. On paras olla käyttämättä 'tarpeettomia' etunollia, jos ei erityisesti pidä oktaaliluvuista! Myös long-vakioille on oma esitysmuotonsa: 34L]
Merkkivakiot esitetään yksinkertaisissa lainausmerkeissä, esimerkiksi: 'A', 'k', ' ', ';', '#', ... . (Kaksoislainausmerkit on varattu String-tyyppisille vakioille!)
Eräille erikoismerkeille on erityiset ilmaukset:
'\b' backspace '\t' tabulaattori (tab) '\n' rivinvaihto (lf) '\f' sivunvaihto (ff) '\r' telanpalautus (cr) '\"' kaksinkertainen lainausmerkki '\'' yksinkertainen lainausmerkki '\\' takakenoviiva '\ddd' merkki, jonka koodi oktaalilukuna on ddd '\udddd' Unicode-merkki, jonka koodi hekdadesimaali- lukuna on ddddHuom: Näitä ilmauksia voi käyttää myös String-vakioissa!
Huom: Kaikki liukulukuliteraalit ovat oletusarvoisesti tyyppiä double! Vakion saa float-tyyppiseksi kirjoittamalla sen loppuun kirjaimen f tai F: 3.14f, 124.F, .12F, 5.6e3f, 0.3E-9f, ...
(Javan liukulukuaritmetiikka (lähes!) noudattaa standardia IEEE 754.)
(Liukulukujen arvoalueeseen kuuluvat myös positiivinen ja negatiivinen ääretön ja erityinen NaN-arvo, "not a number". Näiden avulla pidetään mm. huoli siitä, että alilausekkeen laskennassa tullut "huono" arvo tekee koko lausekkeen arvon "huonoksi". Tällä kurssilla ei numeerisen laskennan periaatteita käsitellä!)
Pieni esimerkki:
public class Kortti { public enum Arvo { KAKKONEN, KOLMONEN, NELONEN, VITONEN, KUTONEN, SEISKA, KASI, YSI, KYMPPI, JÄTKÄ, ROUVA, KUNKKU, ÄSSÄ } public enum Maa { RISTI, HERTTA, PATA, RUUTU } public static void main(String[] args) { // for-each-läpikäynti for (Maa maa : Maa.values()) for (Arvo arvo : Arvo.values()) System.out.println("" + maa + arvo); // switch-lause for (Maa maa : Maa.values()) switch (maa) { case RISTI: case PATA: System.out.println(maa + " on musta."); break; case HERTTA: case RUUTU: System.out.println(maa + " on punainen."); break; } } }Javan uutuus on paljon vahvempi kuin esimerkiksi C:n ja Pascalin vastaava rakenne - oliotekniikka on otettu mukaan peliin! Lisää tietoa löytyy Sunin sivulta. Tällä kurssilla lueteltuun tyyppiin ei ehditä perehtyä.