Datový typ je definován třemi komponenty:
Programovací jazyk obsahuje některé předdefinované vestavěné typy a umožňuje programátorům definovat své vlastní, vlastní.
V jazyce Java jsou datové typy rozděleny na primitivní a referenční typy.
"Primitivní" znamená, že jeho dalšídělení není možné. Rozšíření nebo změna jeho programovacího jazyka neumožňuje. Tento typ dat popisuje primitivní a jiné uživatelsky definované typy.
Proměnná primitivního typu obsahuje hodnotu a referenční proměnná obsahuje adresu objektu v paměti.
Sdružená data jsou rozdělena do tříd, rozhraní a polí. Členové typu rozhraní jsou abstraktní metody a konstanty. V jazyce Java jsou datové a datové typy specifikovány konstruktorem Date ():
Příkladem odkazu je také řetězec.
Řetězec je třída definovaná v knihovně Java a může být použita pro práci s textem (sekvence znaků).
Deklarace referenční proměnné řetězce je následující: String str.
Před přiřazením odkazu na objekt takové proměnné je nutné jej vytvořit u nového operátora. Například můžete vytvořit objekt třídy String s textem "Hello":
Co se stane, když je tento kód spuštěn? Nejprve je přidělena paměť a název této paměti je spojen s touto paměťovou buňkou. To se neliší od deklarace primitivní proměnné. Druhý fragment kódu vytvoří objekt String s textem "Hi" v paměti a uloží odkaz na něj (nebo adresu paměti) na str.
Referenční datové typy Java také umožňujípřiřadit odkaz na objekt uložený v jedné proměnné, jiný. Oba se týkají stejného objektu v paměti. Toho lze dosáhnout takto:
Existuje konstanta null, která může být přiřazena libovolné referenční proměnné. Nevztahuje se na žádný objekt.
Objekt String je vytvořen pomocí nového operátora. Ale protože řetězce jsou používány často, je snadnější způsob, jak vytvořit. Všechny řetězcové literály, tedy posloupnost znaků obsažených v dvojitých uvozovkách, jsou považovány za objekty řetězce. Proto místo nového operátora můžete použít řetězcové literály:
Primitivní datové typy Java - byte, short, int,dlouhá, char, float, double a boolean. Jsou rozděleny do dvou kategorií: logické a numerické. Ty mohou být rozděleny na celá čísla a čísla s plovoucí desetinnou čárkou.
Celé datové typy jazyka Java jsou číselné typy, jejichž hodnoty jsou celočíselné. Existuje pět z nich: byte, krátké, int, dlouhé a char.
Int je 32bitový podepsaný primitivní datový typ. Proměnná trvá 32 bitů paměti. Povolený rozsah je od -2147483648 do 2147483647 (-231 až 231 - 1). Všechna celá čísla v tomto rozsahu jsou integer literály nebo konstanty. Například 10, -200, 0, 30, 19 jsou literály int. Mohou být přiřazeny k int:
Celý literál může být vyjádřen jako binární, osmičkový, desetinný a hexadecimální.
Když písmeno začíná nula a má alespoň dvě číslice, považuje se za písmeno v osmičkovém formátu. 0 a 00 představují stejnou hodnotu - nula.
Všechny literály int v hexadecimálním formátu začínají 0x nebo 0x a musí obsahovat alespoň jednu hexadecimální číslici:
Int-literály v binárním formátu začínají 0b nebo 0B:
Jedná se o 64bitový podepsaný primitivní typ. Používá se, když výsledek výpočtu může překročit rozsah int. Rozsah dlouhý - od -263 až 263- 1. Celá čísla v tomto rozsahu jsou dlouhé písmeny.
Chcete-li rozlišovat mezi int a dlouhými datovými typy v Javě, doslovný typ posledního typu vždy končí L nebo l.
Celá literatura dlouhého typu může být také vyjádřena v osmi, hexadecimálním a binárním formátu.
Když je dlouhý literál přiřazen proměnné dlouhé,Kompilátor jazyka Java kontroluje přiřazenou hodnotu a ověří, zda je v přijatelném rozsahu; jinak dojde k chybě kompilace.
Protože rozsah int je menší než rozsah dlouhý,Hodnota int proměnné může být vždy přiřazena proměnné typu long. Zadání reverzu není možné ani v intervalu int. Za tímto účelem se používá explicitní indikace:
Byte je 8-bitové celé primitivní typu. Jeho rozsah je od -128 do 127 (-27 až 27 - 1). Toto je nejmenší typ celé délky dostupný v Javě. Obvykle se používají proměnné bytu, 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 int a dlouhých literálů neexistují žádné byty literály. Můžete však přiřadit proměnné bytu libovolný int-literál, protože přepíše rozsah bajtů.
Pokud je hodnota proměnné mimo rozsah, vytvoří Java chybu kompilátoru.
Kromě toho můžete přiřadit pouze hodnotu int-literálu, ale ne hodnotu uloženou v int proměnné, protože to může způsobit ztrátu přesnosti. To vyžaduje explicitní casting.
Jedná se o 16bitový podepsaný celý primitivní datový typ. Jeho rozsah je od -32768 do 32767 (nebo -215 až 215 - 1).
Je zpravidla potřeba krátkých proměnnýchnastane, když program používá velký počet hodnot, které nepřesahují zadaný rozsah. Krátký literál chybí, ale je možné přiřadit libovolný doslovný int v rozsahu. Hodnotu proměnné bytu lze vždy přiřadit. Zbývající pravidla pro přiřazení int nebo dlouhé krátké proměnné jsou stejné jako pro byte.
Char je 16bitový nepodepsanýprimitivní datový typ, který představuje znak Unicode. Absence znaménka znamená, že proměnná nemůže mít zápornou hodnotu. Rozsah je od 0 do 65535, což je stejné jako znaková sada Unicode. Literál představuje hodnotu charakteru a může být vyjádřen v těchto formách:
Symbol lze vyjádřit uzavřenímjednoduché uvozovky: char C1 = "A". Dvojité uvozovky označují řetězcový řetězec, který nelze přiřadit znakovému proměnnému, i když řetězec obsahuje pouze jeden znak. To je nepřijatelné, protože odkaz na primitivní proměnnou není přiřazen. Všechny řetězcové literály jsou objekty třídy String a tudíž odkazy, zatímco znakové literály se vztahují k primitivnímu typu.
Doslovný, vyjádřený řídící sekvencí, je psán formou zpětného lomítka s jednočinným charakterem. Celkem je celkem 8: 'n', 'r', 'f', 'b', 't', '\', '' ',' ''.
Unicode řídící sekvence má formu"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 v systému Unicode. Například "A" má hodnotu 65 v desítkové soustavě a 41 v šestnáctkové soustavě. Tento symbol může být reprezentován jako "u0041".
Osmičková řídící sekvence je napsána jako "nnn", kde n je osmičkové číslo (0-7). Rozsah hodnot je od "8 odpovídá 25510. Proto je používán reprezentovatznaky s kódem od 0 do 255, což je nezbytné pro kompatibilitu s jinými programovacími jazyky. Na rozdíl od sekvence Unicode, kde je to nutné, všechny čtyři hexadecimální číslice, můžete použít 1, 2 nebo 3 osmičkové: „n“, „nn“ nebo „nnn“.
Boolean má pouze dvě platné hodnoty: pravdivé a falešné. Jsou nazývány booleovskými literály. Logická proměnná nelze přenést na jiný typ a naopak. Java nedefinuje velikost booleovské - závisí to na konkrétní implementaci virtuálního stroje Java.
Číslo, které obsahuje zlomkovou část v pamětipočítač může být uložen v pohledu s pevným počtem číslic před a za bodem nebo označující jeho polohu. Jelikož počet číslic se může lišit, říká se, že bod "pluje".
V jazyce Java datové typy float používají 32 bitů. Podle standardu IEEE 754 to odpovídá jediné přesnosti, která umožňuje například reprezentovat čísla 1,4 x 10-45 a 3,4 x 1038, pozitivní i negativní.
Všechna reálná čísla, která končí v f nebo F, se nazývají float-literals. Mohou být uvedeny v desítkovém formátu a ve formě vědecké notace. Například:
Typ určuje dvě nuly: + 0.0F (nebo 0.0F) a -0.0F. Pro účely srovnání jsou však obě nuly považovány za rovnocenné. Navíc identifikoval dva typy nekonečna: pozitivní a negativní. Výsledky některých operací (například rozdělení 0.0F na 0.0F) nejsou definovány a jsou reprezentovány speciální hodnotou NaN.
Pro ukládání čísel s pohyblivou čárkou používá dvojité 64 bitů. Číslo dvojité přesnosti může představovat pozitivní 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. Pokud je to požadováno, mohou být explicitně označeny příponou d nebo D, například 19.27d. Dvojité písmeno může být vyjádřeno v desítkové formě a ve vědeckém zápisu.
</ p>