IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

5. diel - Primitívne dátové typy v Jave

V predchádzajúcom cvičení, Riešené úlohy k 3.-4. lekcii Javy, sme si precvičili získané skúsenosti z predchádzajúcich lekcií.

Dnešný Java tutoriál bude veľmi teoretický, pozrieme sa bližšie na dátové typy a vysvetlíme si, kedy aký použiť. Na konci si vytvoríme jednoduchú ukážku.

Dátové typy

Java rozoznáva dva druhy dátových typov, primitívne a referenčné.

Primitívne dátové typy

Premenné primitívneho dátového typu si dokážeme jednoducho predstaviť. Môže sa jednať napr. o číslo alebo znak. V pamäti je jednoducho uložená priamo hodnota a my k tejto hodnote môžeme z programu priamo pristupovať. Slovo priamo som toľkokrát nepoužil len náhodou. V tejto sekcii tutoriálov sa budeme venovať výhradne týmto premenným.

Celočíselné dátové typy

Pozrime sa teraz na tabuľku všetkých vstavaných celočíselných dátových typov v Jave, všimnite si typ int, ktorý už poznáme z minula:

Dátový typ Rozsah Veľkosť
byte -128 až 127 8 bitov
short -32 768 až 32 767 16 bitov
int -2 147 483 648 až 2 147 483 647 32 bitov
long -9 223 372 036 854 775 808 až 9 223 372 036 854 775 807 64 bitov

Asi vám napadá otázka, prečo máme toľko možných typov na uloženie čísla. Odpoveď je jednoduchá, záleží na jeho veľkosti. Čím väčšie číslo, tým viac spotrebuje pamäte. Pre vek užívateľa teda zvolíme dátový typ byte, pretože sa určite nedožije viac ako 127 rokov. Predstavte si databázu milióna užívateľov nejakého systému, keď zvolíme dátový typ int namiesto byte, bude zaberať 4x viac miesta. Naopak, keď budeme mať funkciu na výpočet faktoriálu, len ťažko nám bude stačiť rozsah dátového typu int a použijeme long.

Nad výberom dátového typu nemusíte veľmi premýšľať, väčšinou sa používa jednoducho int. Typ riešte iba v prípade, keď sú premenné v nejakom poli (všeobecne kolekcii) a je ich teda viac, potom sa oplatí zaoberať sa pamäťovými nárokmi. Tabuľky sem dávam skôr pre úplnosť. Medzi typmi samozrejme funguje už spomínaná implicitná konverzia, teda môžeme priamo priradiť dátový typ int do premennej typu long a podobne bez toho, aby sme niečo konvertovali.

Desatinné čísla

U desatinných čísel je situácia trochu jednoduchšia, máme na výber iba dva dátové typy. Samozrejme sa líšia opäť v rozsahu hodnoty, ďalej však ešte v presnosti (vlastne v počte desatinných miest). Dátový typ double má už podľa názvu dvojnásobnú presnosť oproti float:

Dátový typ Rozsah Presnosť
float +-1.5 * 10−45 až +-3.4 * 1038 7 čísel
double +-5.0 * 10−324 až +-1.7 * 10308 15-16 čísel

Pozor, vzhľadom na to, že desatinné čísla sú v počítači uložené v dvojkovej sústave, dochádza k určitej strate presnosti. Odchýlka je síce takmer zanedbateľná, ale keď budete programovať napr. finančný systém, nepoužívajte tieto dátové typy na uchovanie peňazí, mohlo by dôjsť k malým odchýlkam.

Keď do typu float chceme dosadiť priamo v zdrojovom kóde, musíme použiť suffix F, pri type double suffix D:

float f = 3.14F;
double d = 2.72;

U double ho môžeme vypustiť, pretože je východiskovým desatinným typom.

Ako desatinný separátor používame v zdrojovom kóde vždy bodku nehľadiac na to, aké máme v operačnom systéme regionálne nastavenia.

Ďalšie vstavané dátové typy

Pozrime sa na ďalšie dátové typy, ktoré nám Java ponúka:

Dátový typ Rozsah Veľkosť/Presnosť
char U+0000 až U+ffff 16 bitov
boolean true alebo false 8 bitov
Dátový typ char

Typ char nám reprezentuje jeden znak na rozdiel od typu String, ktorý reprezentoval celý reťazec znakov. Znaky v Jave píšeme do apostrofov:

char character = 'A';

Typ char patrí v podstate do celočíselných premenných (obsahuje číselný kód znaku), ale prišlo mi logickejšie uviesť ho tu.

Dátový typ BigDecimal

Typ BigDecimal rieši problém ukladania desatinných čísel v binárnej podobe, ukladá totiž číslo vnútorne ako pole. Používa sa teda na uchovanie peňažných hodnôt. Nebudeme si tu ukazovať použitie, pretože sa používa ako objekt. Pokiaľ budete robiť niekedy finančné výpočty, tak si naň spomeňte.

V Jave sú čísla tzv. oddedené od triedy Number. To je skôr informácia do budúcnosti. Keďže teraz nevieme, čo dedičnosť znamená, dôležitá pre nás nie je. Trieda Number obsahuje ešte štyri podtriedy, ktorými sa nebudeme podrobnejšie zaoberať. Triedy BigDecimal a BigInteger slúžia na výpočty s vysokou presnosťou. Triedy AtomicInteger a AtomicLong sa používajú v aplikáciách s viacerými vláknami. Opäť je dôležité, aby ste vedeli, že niečo také existuje, a prípadne sa sem neskôr vrátili.

Dátový typ boolean

Typ boolean nadobúda dve hodnoty: true (pravda) a false (nepravda). Budeme ho používať najmä vtedy, keď sa dostaneme k podmienkam. Do premennej typu boolean je možné uložiť priamo hodnotu true / false a taktiež aj logický výraz. Skúsme si jednoduchý príklad:

boolean b = false;
boolean expression = (15 > 5);
System.out.println(b);
System.out.println(expression);

Výstup programu:

Konzolová aplikácia
false
true

Výrazy píšeme do zátvoriek. Vidíme, že výraz nadobúda hodnotu true (pravda), pretože hodnota 15 je naozaj väčšia ako 5. Od výrazov je to len krok k podmienkam, na ktoré sa pozrieme neskôr v kurze. To je pre dnešnú lekciu všetko 🙂

V budúcej lekcii, Textové reťazce a referenčné typy v Jave , sa zameriame na referenčné dátové typy, popíšeme si metódy na reťazci a naučíme sa s nimi pracovať.


 

Predchádzajúci článok
Riešené úlohy k 3.-4. lekcii Javy
Všetky články v sekcii
Základné konštrukcie jazyka Java
Preskočiť článok
(neodporúčame)
Textové reťazce a referenčné typy v Jave
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity