Existuje snad iba jeden jazyk, ktory sa dokaze zaobist aj bez premennych. Je to lisp. Bohuzial alebo nastastie Java nema vela spolocneho s tymto jazykom. Premenne tu hraju velku ulohu, rovnako ako v C++.
Meno premennej musi splnat nasledujuce pravidla:
a) musi byt jednoznacny identifikator, ktory je zostaveny len zo znakov Unicodu. Unicode je kodovaci system umoznujuci pomenovat premenne napriklad v azbuke.
b) meno premennej nesmie byt totozne s rezervovanym slovom. (Zoznam rezervovanych slov najdete v prilohe A.) Napriklad: true, class, int, ... a podobne meno premennej nesmie byt totozne s menom inej premennej v tom istom programovom bloku.
V Jave je presne definovane kolko bitova je premenna typu int (32-bitov). Mate zaruku, ze na vsetkych platformach bude tato premenna 32-bitova
Deklaracia premennej v plnej forme. (parametre v [] nie su povinne).
[pristup] [static] [final] [transient] [volatile] typ meno [= inicializacna hodnota];
[pristup] specifikuje, ktore triedy maju pristup k premennej.
[static] pozri kapitolu/cast Triedy/Staticke datove cleny a metody
[final] znamena, ze premenna je konstanta
[transient] premenna nie je castou "object's persistent state"
[volatile] znamena, ze premenna moze byt modifikovatelna asynchronne
Kazda premenna je nejakeho typu. Existuju zakladne udajove typy:
Ciselne
meno pocet bitov popis byte 8 celociselna short 16 celociselna int 32 celociselna long 64 celociselna float 32 IEEE 754, realne cislo (jednoducha presnost) double 64 IEEE 754, realne cislo (dvojnasobna presnost) Ostatne
meno pocet bitov popis char 16 Unicode, jeden znak boolean N/A logicka hodnota; pravda alebo nepravda
Inicializacia premennych je rovnaka ako v C++.
Priklad.int pocet = 0;
Vyznam: premenna pocet je typu int a bola inicializovana na hodnotu 0.
Inicializacna hodnota musi byt rovnakeho typu ako premenna!
***
V Jave nenajdeme typ, ktory by bol totozny s typom (char *) v C++. Java nema typ "string". Na pracu s retazcami sluzi trieda String, StringBuffer a podobne.