Typ dat je určen třemi složkami:
- množina hodnot nebo objektů;
- soubor operací, které lze použít na všechny hodnoty v sadě;
- prezentace dat určujících jejich uložení.
Jaké jsou datové typy v Javě?
Programovací jazyk obsahuje některé předdefinované vestavěné typy a umožňuje programátorům definovat své vlastní.
V Javě jsou datové typy rozděleny na primitivní a referenční.
„Primitivní“ znamená, že jeho dalšídělení je nemožné. Rozšiřuje nebo mění svůj programovací jazyk, který neumožňuje. Tento datový typ je popsán primitivními a jinými typy uživatelů.
Proměnná primitivního typu obsahuje hodnotu a jedna referenční obsahuje adresu objektu v paměti.
Jazyk Java. Typy dat: čas a datum
Složená data jsou rozdělena do tříd, rozhraní a polí. Členy typu rozhraní jsou abstraktní metody a konstanty. V Javě jsou datové typy data a času určeny konstruktorem Date ():
- d = nové datum ().
Příkladem odkazu je také řetězec.
Jazyk Java. Typy dat: Řetězec
Řetězec je třída definovaná v knihovně Java a může být použita pro práci s textem (posloupnost znaků).
Prohlášení referenční proměnné String je následující: String str.
Před přiřazením odkazu na objekt k takové proměnné je nutné ji vytvořit pomocí nového operátora. Můžete například vytvořit objekt třídy String s textem „Hello“:
- str = new String ("Hello").
Co se stane po spuštění tohoto kódu?Nejprve je přidělena paměť a jméno str je spojeno s touto paměťovou buňkou. To se neliší od deklarace primitivní proměnné. Druhý fragment kódu vytvoří objekt String v paměti s textem „Hello“ a uloží odkaz na něj (nebo adresu paměti) v str.
Typy referenčních dat Java také umožňujípřiřadit odkaz na objekt uložený v jedné proměnné, jiné. Oba odkazují na stejný objekt v paměti. Toho lze dosáhnout takto:
- String str1;
- String str2;
- str1 = nový řetězec ("Hello");
- str2 = str1;
Existuje nulový permalink, který lze přiřadit libovolné referenční proměnné. Neodkazuje na žádný objekt.
Objekt String je vytvořen pomocí nového operátoru. Ale protože řetězce jsou často používány, existuje jednodušší způsob, jak to vytvořit. Všechny řetězcové literály, tj. Posloupnost znaků uzavřených do uvozovek, jsou považovány za String objekty. Proto můžete místo nového operátoru použít řetězcové literály:
- String str1 = "Ahoj".
Примитивные типы данных Java – byte, short, int, dlouhý, char, float, double a boolean. Jsou rozděleny do dvou kategorií: logické a číselné. Ten lze rozdělit na celá čísla a čísla s pohyblivou řádovou čárkou.
Datové typy Java integer jsou číselné typy, jejichž hodnoty jsou celá čísla. Je jich pět: byte, short, int, long a char.
Int
Int je 32bitový podepsaný primitivní datový typ. Proměnná zabírá 32 bitů paměti. Platný rozsah je -2147483648 až 2147483647 (-231 až 231 - 1). Všechna celá čísla v tomto rozsahu jsou celočíselné literály nebo konstanty. Například 10, -200, 0, 30, 19 jsou int literály. Mohou být přiřazeny k proměnné int:
- int num1 = 21;
Celočíselné literály lze vyjádřit jako binární, osmičkové, desítkové a šestnáctkové čísla.
Když literál začíná nulou a má alespoň dvě číslice, považuje se to v osmičkovém formátu. 0 a 00 představují stejnou hodnotu - nula.
Všechny int literály v hexadecimálním formátu začínají 0x nebo 0x a musí obsahovat alespoň jednu šestnáctkovou číslici:
- int num1 = 0x123.
Int literály v binárním formátu začínají 0b nebo 0B:
- int num1 = 0b10101.
Dlouho
Je to 64bitový podepsaný primitivní typ. Používá se, když výsledek výpočtu může překročit rozsah int. Dlouhý dolet - od -263 až 263- 1. Všechna celá čísla v tomto rozsahu jsou literály dlouhého typu.
Aby bylo možné rozlišit mezi int a dlouhými datovými typy v Javě, končí druhý literál vždy na L nebo l.
Celočíselné literály dlouhého typu lze také vyjádřit v osmičkovém, šestnáctkovém a binárním formátu.
Když je dlouhý literál přiřazen dlouhé proměnné,překladač Java zkontroluje přidělenou hodnotu a ujistí se, že je v přijatelném rozsahu; jinak dojde k chybě kompilace.
Protože rozsah int je menší než rozsah long,hodnotu proměnné int lze vždy přiřadit proměnné typu long. Opačné přiřazení však není možné ani v rozsahu int. K tomu se používá explicitní označení:
- num1 = (int) num2;
Byte
Byte je 8bitový celočíselný primitivní typ. Jeho rozsah je -128 až 127 (-27 až 27 - 1). Je to nejmenší celočíselný typ dostupný v Javě. Bajtové proměnné se obvykle používají, když program používá mnoho hodnot v rozsahu od -128 do 127, nebo při práci s binárními daty. Na rozdíl od literálů int a long neexistují žádné bajtové literály. K proměnné bajtů však můžete přiřadit libovolný int literál, protože překrývá rozsah bajtů.
Pokud je hodnota proměnné mimo rozsah, Java vyvolá chybu kompilátoru.
Kromě toho můžete přiřadit pouze literál int, ale ne hodnotu uloženou v proměnné int, protože to může vést ke ztrátě přesnosti. To bude vyžadovat explicitní obsazení.
- b1 = (byte) num1.
Krátký
Je to 16bitový celočíselný primitivní datový typ se znaménkem. Jeho rozsah je -32768 až 32767 (nebo -215 až 215 - 1).
Obecně potřeba krátkých proměnnýchnastane, když program používá velké množství hodnot, které nepřesahují zadaný rozsah. Neexistuje žádný krátký literál, ale můžete přiřadit jakýkoli int literál v krátkém rozsahu. Hodnotu byte proměnné lze vždy přiřadit. Zbývající pravidla pro přiřazení int nebo long ke short jsou stejná jako pro byte.
Char
Char je 16bitový bez znaménkaprimitivní datový typ, který představuje znak Unicode. Absence znaménka znamená, že proměnná nemůže mít zápornou hodnotu. Rozsah je 0 až 65535, což odpovídá kódování znakové sady Unicode. Literál představuje char hodnotu a může být vyjádřen v následujících formách:
- znak uzavřený do jednoduchých uvozovek;
- posloupnost řídících znaků;
- posloupnost řídicích znaků Unicode;
- posloupnost osmičkových řídicích znaků.
Symbol lze vyjádřit uzavřenímjednoduché uvozovky: char C1 = "A". Dvojité uvozovky označují řetězcový literál, který nelze přiřadit proměnné char, i když řetězec obsahuje pouze jeden znak. To není povoleno, protože není přiřazen žádný odkaz na primitivní proměnnou. Všechny řetězcové literály jsou String objekty a tedy odkazy, zatímco znakové literály jsou primitivního typu.
Literál escape sekvence je zapsán jako zpětné lomítko následované znakem v jednoduchých uvozovkách. Je jich 8: „n“, „r“, „f“, „b“, „t“, „\“, „“, „“.
Sekvence úniku unicode je„uxxxx“, kde u (zpětné lomítko následované malými písmeny u) označuje jeho začátek a xxxx představuje přesně čtyři hexadecimální číslice znakového kódu Unicode. Například „A“ má hodnotu 65 v desítkové soustavě a 41 v šestnáctkové soustavě. Tento znak tedy může být reprezentován jako „u0041“.
Sekvence osmičkového úniku je zapsána jako „nnn“, kde n je osmičková číslice (0-7). Hodnoty se pohybují od „8 odpovídá 25510... Proto se používá k reprezentaciznaky s kódem od 0 do 255, požadované pro kompatibilitu s jinými programovacími jazyky. Na rozdíl od sekvence Unicode, která vyžaduje všechny čtyři hexadecimální číslice, můžete zde použít 1, 2 nebo 3 osmičkové číslice: „n“, „nn“ nebo „nnn“.
Booleovský typ
Boolean má pouze dvě platné hodnoty: pravdivé a nepravdivé. Říká se jim booleovské literály. Logickou proměnnou nelze vrhnout na jiný typ a naopak. Java neurčuje velikost booleovské hodnoty - záleží na konkrétní implementaci JVM.
Datové typy Java s plovoucí desetinnou čárkou
Číslo, které obsahuje zlomkovou část v pamětipočítač může být uložen v reprezentaci se stálým počtem číslic před a za bodem, nebo s uvedením jeho polohy. Protože počet číslic se může lišit, říká se, že bod „plave“.
V jazyce Java používají datové typy s plovoucí desetinnou čárkou 32 bitů. Podle standardu IEEE 754 to odpovídá jediné přesnosti, která vám umožňuje reprezentovat například čísla 1,4 x 10-45 a 3,4 x 1038pozitivní i negativní.
Všechna reálná čísla, která končí na f nebo F, se nazývají plovoucí literály. Mohou být reprezentovány v desítkovém formátu a ve vědecké notaci. Například:
- float f1 = 3,25F;
- float f2 = 32,5E-1F;
- float f3 = 0,325E + 1F.
Typ definuje dvě nuly: + 0,0F (nebo 0,0F) a -0,0F. Pro účely srovnání jsou však obě nuly považovány za rovnocenné. Kromě toho definoval dva typy nekonečna: pozitivní a negativní. Výsledky některých operací (například dělení 0,0F 0,0F) jsou nedefinované a jsou reprezentovány speciální hodnotou NaN.
Dvojitá přesnost
Double používá 64 bitů k ukládání čísel s plovoucí desetinnou čárkou. Čísla s dvojitou přesností mohou představovat kladné a záporné hodnoty 4,9 x 10-324 a 1,7 x 10308.
Všechna reálná čísla jsou ve výchozím nastavenídvojité literály. Volitelně mohou být výslovně označeny příponou d nebo D, například 19,27d. Dvojitý literál lze vyjádřit v desítkové formě a ve vědeckém zápisu.