Naučte se Javu – datové typy
V tomto díle se seznámíme se základními datovými typy jazyka Java a řekneme si o možnostech typové konverze proměnných.
Jazyk Java je (podobně jako např. C a C++) typový jazyk, tedy každá proměnná má pevně určený datový typ a nemůže v ní být uložena hodnota jiná než odpovídající tomuto datovému typu. Datový typ je obor hodnot, kterých může proměnná nabývat. Tím se typové jazyky liší od většiny skriptovacích jazyků (JavaScript, VB Script, PHP), kde je práce s proměnnými daleko volnější.
Datové typy jsou v Javě dvojího druhu – primitivní a referenční.
Proměnná se deklaruje uvedením názvu typu, za kterým následuje název proměnné, popř. seznam více proměnných oddělený čárkami. Operátor “=” slouží pro přiřazení hodnoty proměnné a může být uveden přímo v deklaraci proměnné.
Příklad:
|
Primitivní datové typy
Primitivní datové typy reprezentují elementární údaje, je jich omezené množství a nedají se uživatelsky definovat.
Přehled primitivních datových typů
typ | popis | velikost | min. hodnota | max. hodnota |
byte | celé číslo | 8 bitů | -128 | +127 |
short | celé číslo | 16 bitů | -32768 | +32767 |
int | celé číslo | 32 bitů | -2147483648 | +2147483647 |
long | celé číslo | 64 bitů | -9223372036854775808 | +9223372036854775807 |
float | reálné číslo | 32 bitů | -3.40282e+38 | +3.40282e+38 |
double | reálné číslo | 64 bitů | -1.79769e+308 | +1.79769e+308 |
char | znak UNICODE | 16 bitů | /u0000 | /uFFFF |
boolean | logická hodnota | 1 bit | – | – |
Celočíselné typy
Veškeré celočíselné datové typy Javy jsou se znaménkem s výjimkou znakového typu char
(lze na něj také pohlížet jako na číslo, pak nabývá pouze kladných hodnot).
Základní celočíselný typ je int
. Rozšířený typ je long
, menší short
a byte
.
Konstanta typu long
jde explicitně zapsat tak, že za číslo přidáme znak “l” nebo “L”, např. “123456L”.
Pokud číslo začnete číslicí 0, znamená to, že je v osmičkové soustavě. Pokud číslo začnete znaky 0x, je číslo v šestnáctkové soustavě.
int x=123; // x = 123
int y=0123; // y = 83
int z=0x12A; // z = 298
Reálné typy
Pro reálná čísla (s plovoucí desetinou čárkou – floating point) se v Javě používají dva typy – float
a přednější double
. Konstantu typu float
resp. double
můžete označit přidáním písmene “f” nebo “F” resp. “d” nebo “D”. U čísel lze specifikovat desítkový exponent pomocí znaku “e” nebo “E”, např. 1.23e5 = 12300.
Reálné typy kromě čísel mohou nabývat speciálních hodnot: POSITIVE_INFINITY (plus nekonečno), NEGATIVE_INFINITY (záporné nekonečno), NaN (hodnota není číslo – Not a Number).
Nejmenší absolutní hodnota (větší než nula) v proměnných typu float a double mohou být:
float | 1.40239846e-45 |
double | 4.94065645841246544e-324 |
Znakové typy
Typ char
je dvoubajtový typ pro reprezentaci znaku ve formátu UNICODE. Znaková konstanta se uzavírá do apostrofů (‘a’), popřípadě lze zadat šestnáctkově ve tvaru \u0015
. Znak uzavřený do uvozovek reprezentuje jednoznakový řetězec (tedy ne znak).
Znakový řetězec již není primitivní datový typ, reprezentuje se objektem java.lang.String
.
Logický typ
Pro logické hodnoty se používá typ boolean
, může nabývat hodnot true
(pravda) a false
(nepravda).
Prázdné typy
Typ void
je prázdný typ, nemohou existovat proměnné typu void
, ale metody mohou mít návratovou hodnotu void (takové metody žádnou hodnotu nevrací).
Typová konverze
Celočíselné typy lze mezi sebou vzájemně převádět pouze na přesnější hodnoty (tak, aby nemohlo dojít ke ztrátě přesnosti), opačným směrem je nutné použít přetypování pomocí kulatých závorek, jak ukazuje příklad. Totéž platí pro reálné proměnné a pro konverzi mezi celočíselnými a reálnými proměnnými.
Pozn. Operátor “=” se používá pro přiřazení hodnoty.
|
(o operátorech více v dalším díle)
konstanta | datový typ |
178 | int |
8864L | long |
37.266 | double |
37.266D | double |
87.363F | float |
26.77e3 | double |
‚c‘ | char |
true | boolean |
Referenční datové typy
Referenční datové typy jsou objekty a pole. Hodnota referenční proměnné je odkaz (reference) do paměti na místo, kde je objekt (nebo pole) uložen. V jiných programovacích jazycích se používá pro tento účel pointerů (ukazatelů do paměti), v Javě se přímo s pamětí nepracuje, místo pointerů se používají referenční proměnné.
Typ null
je prázdná hodnota pro referenční typy a znamená, že chybí odkaz na objekt resp. pole.
Jelikož referenční proměnná obsahuje pouze odkaz na objekt, nikoli objekt samotný, přiřazením její hodnoty jiné proměnné se přiřadí opět pouze reference na původní objekt, nikoli jeho samotná data tak, jak to bylo u primitivních datových typů. Porovnejte přiřazení v následujícím příkladu (pokud nerozumíte syntaxi v druhé polovině příkladu, nelekejte se, k objektům se dostaneme v dalších dílech).
|
Mohlo by vás také zajímat
-
AI v programování: Jak používat GitHub Copilot (část 2)
19. února 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
Landing page: Jak vytvořit landing page s vysokým CTR
7. května 2024 -
Nepodceňte UX na vašem webu: Proč na něm záleží?
10. dubna 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024
Anonym
Říj 19, 2014 v 20:13V části „Reálné typy“ je chyba – 1.23e5 není 12300 ale 123000.
V části „Typová konverze“ je chyba – float f= 12.3; se nezkompiluje, protože konvence primitivního typu float je:
float f= 12.3f;
nebo
float f= 12.3F;