Java je staticky typovaný a také silně typovaný jazyk, protože v Javě je každý typ dat (jako je celé číslo, znak, šestnáctková, sbalená desítková atd.) předdefinován jako součást programovacího jazyka a všechny konstanty nebo proměnné definované pro daný program musí být popsán jedním z datových typů Java.
Datové typy v Javě
Datové typy v Javě mají různé velikosti a hodnoty, které lze uložit do proměnné vytvořené podle potřeby a okolností, aby pokryly všechny testovací případy. Java má dvě kategorie, ve kterých jsou datové typy odděleny
- Primitivní datový typ: jako je boolean, char, int, short, byte, long, float a double
- Neprimitivní datový typ nebo datový typ objektu: jako String, Array atd.

třídicí pole v Javě
Primitivní datové typy v Javě
Primitivní data jsou pouze jednotlivé hodnoty a nemají žádné speciální schopnosti. Existuje 8 primitivních datových typů. Níže jsou znázorněny v tabulkovém formátu takto:
| Typ | Popis | Výchozí | Velikost | Příklad literály | Rozsah hodnot |
|---|---|---|---|---|---|
| booleovský | pravda nebo lež | Nepravdivé | 1 bit | pravda, nepravda | pravda, nepravda |
| byte | celé číslo s dvojkovým doplňkem | 0 | 8 bitů | (žádný) | -128 až 127 |
| char | Unicode znak | u0000 | 16 bitů | 'a', 'u0041', '101', '', '', ' ', 'b' | znaková reprezentace hodnot ASCII 0 až 255 |
| krátký | celé číslo s dvojkovým doplňkem | 0 | 16 bitů | (žádný) | -32 768 až 32 767 |
| int | dvoukomplement intger | 0 | 32 bitů | -2,-1,0,1,2 | -2,147,483,648 na 2,147,483,647 |
| dlouho | celé číslo s dvojkovým doplňkem | 0 | 64 bitů | -2L,-1L,0L,1L,2L | -9,223,372,036,854,775,808 na 9,223,372,036,854,775,807 |
| plovák | IEEE 754 s plovoucí desetinnou čárkou | 0,0 | 32 bitů | 1.23e100f , -1.23e-100f , .3f ,3.14F | až 7 desetinných číslic |
| dvojnásobek | IEEE 754 s plovoucí desetinnou čárkou | 0,0 | 64 bitů | 1.23456e300d , -123456e-300d , 1e1d | až 16 desetinných číslic |
Pojďme diskutovat a implementovat každý z následujících datových typů, které jsou následující:
1. Booleovský datový typ
Booleovský datový typ představuje pouze jeden bit informace buď pravdivé nebo nepravdivé který má reprezentovat dvě pravdivostní hodnoty logiky a booleovské algebry, ale velikost datového typu boolean je závislý na virtuálním stroji . Hodnoty typu boolean se nepřevádějí implicitně ani explicitně (s přetypováním) na žádný jiný typ. Programátor ale může snadno napsat konverzní kód.
Syntax:
boolean booleanVar;>
Velikost: Závisí na virtuálním počítači
2. Typ dat Byte
Datový typ bajtu je 8bitové celé číslo se znaménkem dvojky. Datový typ byte je užitečný pro úsporu paměti ve velkých polích.
Syntax:
byte byteVar;>
Velikost: 1 bajt (8 bitů)
java valueof enum
3. Krátký datový typ
Krátký datový typ je 16bitové celé číslo doplněné dvojkou se znaménkem. Podobně jako u bajtů použijte zkrat pro úsporu paměti ve velkých polích v situacích, kdy na úspoře paměti skutečně záleží.
Syntax:
short shortVar;>
Velikost: 2 bajty (16 bitů)
4. Integer Data Type
Jedná se o 32bitové celé číslo doplněné dvojkou se znaménkem.
Syntax:
int intVar;>
Velikost: 4 bajty (32 bitů)
Pamatovat si: V Java SE 8 a novějších můžeme použít datový typ int k reprezentaci 32bitového celého čísla bez znaménka, které má hodnotu v rozsahu [0, 232-1]. Pomocí třídy Integer použijte datový typ int jako celé číslo bez znaménka.
5. Long Data Type
Dosah longu je poměrně velký. Datový typ long je 64bitové celé číslo s dvojkovým doplňkem a je užitečné pro případy, kdy typ int není dostatečně velký, aby udržel požadovanou hodnotu. Velikost datového typu Long je 8 bajtů (64 bitů).
Syntax:
long longVar;>
Pamatovat si: V Java SE 8 a novějších můžete použít datový typ long k reprezentaci 64bitové délky bez znaménka, která má minimální hodnotu 0 a maximální hodnotu 264-1. Třída Long také obsahuje metody, jako je porovnávání bez znaménka, dělení bez znaménka atd. pro podporu aritmetických operací pro long bez znaménka.
6. Float Data Type
Datový typ float je 32bitový IEEE 754 s jednoduchou přesností a plovoucí desetinnou čárkou. Pokud potřebujete ušetřit paměť ve velkých polích čísel s plovoucí desetinnou čárkou, použijte float (místo double). Velikost datového typu float je 4 bajty (32 bitů).
Syntax:
float floatVar;>
7. Dvojitý datový typ
Datový typ double je 64bitový IEEE 754 s plovoucí desetinnou čárkou s dvojitou přesností. Pro desítkové hodnoty je tento datový typ obecně výchozí volbou. Velikost datového typu double je 8 bajtů nebo 64 bitů.
počítač vynalezený rok
Syntax:
double doubleVar;>
Poznámka: Oba typy dat float i double byly navrženy speciálně pro vědecké výpočty, kde jsou přijatelné aproximační chyby. Pokud je na prvním místě přesnost, doporučuje se nepoužívat tyto datové typy a místo toho použít třídu BigDecimal.
Doporučuje se projít zaokrouhlování chyb v jazyce Java.
8. Typ dat znaku
Datový typ char je jeden 16bitový znak Unicode o velikosti 2 bajtů (16 bitů).
Syntax:
char charVar;>
Proč je velikost char 2 bajtů v Javě?
Jiné jazyky jako C/C++ tedy používají pouze znaky ASCII a k reprezentaci všech znaků ASCII stačí 8 bitů. Ale Java používá Systém Unicode, nikoli systém kódu ASCII a k reprezentaci systému Unicode 8 bitů nestačí k reprezentaci všech znaků, takže Java používá pro znaky 2 bajty. Unicode definuje plně mezinárodní znakovou sadu, která může reprezentovat většinu světových psaných jazyků. Jde o sjednocení desítek znakových sad, jako je latinka, řečtina, azbuka, katakana, arabština a mnoho dalších.
Příklad:
Jáva
// Java Program to Demonstrate Char Primitive Data Type> // Class> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Creating and initializing custom character> >char> a =>'G'>;> >// Integer data type is generally> >// used for numeric values> >int> i =>89>;> >// use byte and short> >// if memory is a constraint> >byte> b =>4>;> >// this will give error as number is> >// larger than byte range> >// byte b1 = 7888888955;> >short> s =>56>;> >// this will give error as number is> >// larger than short range> >// short s1 = 87878787878;> >// by default fraction value> >// is double in java> >double> d =>4.355453532>;> >// for float use 'f' as suffix as standard> >float> f =>4>.7333434f;> >// need to hold big range of numbers then we need> >// this data type> >long> l =>12121>;> >System.out.println(>'char: '> + a);> >System.out.println(>'integer: '> + i);> >System.out.println(>'byte: '> + b);> >System.out.println(>'short: '> + s);> >System.out.println(>'float: '> + f);> >System.out.println(>'double: '> + d);> >System.out.println(>'long: '> + l);> >}> }> |
>
vymazání mezipaměti npm
>Výstup
char: G integer: 89 byte: 4 short: 56 float: 4.7333436 double: 4.355453532 long: 12121>
Neprimitivní datový typ nebo referenční datové typy
The Referenční datové typy bude obsahovat paměťovou adresu hodnot proměnných, protože referenční typy neukládají hodnotu proměnné přímo do paměti. Jsou to řetězce, objekty, pole atd.
1. Struny
Struny jsou definovány jako pole znaků. Rozdíl mezi polem znaků a řetězcem v Javě je v tom, že řetězec je navržen tak, aby obsahoval posloupnost znaků v jedné proměnné, zatímco pole znaků je sbírka samostatných entit typu znak. Na rozdíl od C/C++ nejsou řetězce Java ukončeny znakem null.
Syntax: Prohlášení řetězce
= ;>
Příklad:
// Declare String without using new operator String s = 'techcodeview.com'; // Declare String using new operator String s1 = new String('techcodeview.com');> 2. Třída
A třída je uživatelsky definovaný plán nebo prototyp, ze kterého jsou vytvářeny objekty. Představuje soubor vlastností nebo metod, které jsou společné všem objektům jednoho typu. Obecně mohou deklarace tříd obsahovat tyto komponenty v tomto pořadí:
- Modifikátory : Třída může být veřejná nebo má výchozí přístup. Odkazují na specifikátory přístupu pro třídy nebo rozhraní v Javě
- Jméno třídy: Název by měl začínat počátečním písmenem (velkými písmeny podle konvence).
- Superclass (pokud existuje): Název rodiče třídy (nadtřída), pokud existuje, před kterým je klíčové slovo extends. Třída může rozšířit (podtřídu) pouze o jednoho rodiče.
- Rozhraní (pokud existují): Čárkami oddělený seznam rozhraní implementovaných třídou, pokud existuje, před kterým je klíčové slovo implements. Třída může implementovat více než jedno rozhraní.
- Tělo: Tělo třídy je obklopeno složenými závorkami { }.
3. Objekt
An Objekt je základní jednotkou objektově orientovaného programování a představuje entity reálného života. Typický program v Javě vytváří mnoho objektů, které, jak víte, interagují vyvoláním metod. Objekt se skládá z:
- Stát : Je reprezentován atributy objektu. Odráží také vlastnosti objektu.
- Chování : Je reprezentován metodami objektu. Odráží také reakci objektu na jiné objekty.
- Identita : Přiděluje objektu jedinečný název a umožňuje interakci jednoho objektu s jinými objekty.
4. Rozhraní
Jako třída, an rozhraní mohou mít metody a proměnné, ale metody deklarované v rozhraní jsou ve výchozím nastavení abstraktní (pouze podpis metody, žádné tělo).
- Rozhraní určují, co musí třída dělat a ne jak. Je to plán třídy.
- Rozhraní je o schopnostech, jako že Hráč může být rozhraním a každá třída implementující Hráč musí být schopen (nebo musí implementovat) move(). Specifikuje tedy sadu metod, které má třída implementovat.
- Pokud třída implementuje rozhraní a neposkytuje těla metod pro všechny funkce specifikované v rozhraní, musí být třída deklarována jako abstraktní.
- Příkladem knihovny Java je Rozhraní komparátoru . Pokud třída implementuje toto rozhraní, lze jej použít k třídění kolekce.
5. Pole
An Pole je skupina proměnných podobného typu, na které se odkazuje společným názvem. Pole v Javě fungují jinak než v C/C++. Níže jsou uvedeny některé důležité body o polích Java.
- V Javě jsou všechna pole dynamicky alokována. (diskutované níže)
- Vzhledem k tomu, že pole jsou v Javě objekty, můžeme jejich délku zjistit pomocí délky členů. To se liší od C/C++, kde zjišťujeme délku pomocí velikosti.
- Proměnnou pole Java lze také deklarovat jako jiné proměnné s [] za datovým typem.
- Proměnné v poli jsou seřazeny a každá má index začínající 0.
- Pole Java lze také použít jako statické pole, lokální proměnnou nebo parametr metody.
- The velikost pole musí být specifikováno hodnotou int a nesmí být dlouhé nebo krátké.
- Přímá nadtřída typu pole je Object.
- Každý typ pole implementuje rozhraní Klonovatelné a java.io.Serializovatelný .
Časté dotazy k datovým typům v Javě
1. Co jsou datové typy v Javě?
Datové typy mají různé velikosti a hodnoty, které lze uložit do proměnné, která je vytvořena podle potřeby a okolností, aby byly pokryty všechny testovací případy.
2. Jakých 8 datových typů se používá v Javě?
V Javě je 8 hlavních primitivních datových typů, jak je uvedeno níže:
- booleovský
- byte
- char
- krátký
- int
- dlouho
- plovák
- dvojnásobek
3. Co je primitivní typ v Javě?
Primitivní datové typy jsou typy v jazyce Java, které mohou uložit jednu hodnotu a neposkytují žádnou zvláštní schopnost.
4. Proč char používá 2 bajty v Javě a co je u0000?
Char používá 2 bajty v Javě, protože používá systém Unicode spíše než systém ASCII. u000 je nejnižší rozsah systému Unicode.
Překontrolovat: Kvíz o typu dat v Javě