Jaké jsou různé datové typy v Javě?
Java nabízí osm primitivních datových typů a řadu složitých datových typů. Ty určují, jaké hodnoty lze v proměnné ukládat a zobrazovat. Určité datové typy jsou přiřazeny všem proměnným v Javě.
Jaké datové typy existují v Javě?
V každém programovacím jazyce existují různé datové typy, které obsahují specifické objekty a definované operace. Ačkoli se možnosti datových typů nabízené různými jazyky často podobají, někdy existují významné rozdíly. Například pokud porovnáte Python a Java a jejich datové typy, všimnete si podobností mezi nimi, ale také četných rozdílů, díky nimž jsou tyto jazyky vhodné pro různé typy úkolů.
Java používá dva různé druhy datových typů: primitivní a komplexní. Komplexní datové typy se také nazývají referenční typy. Primitivní a komplexní datové typy se liší svou velikostí a určují, jaké hodnoty lze uložit do proměnné. Zatímco primitivní datové typy mohou ukládat pouze jednoduché hodnoty, referenční typy se používají k vytváření složitějších struktur a k organizaci a manipulaci s velkými objemy dat.
Pokud se chcete naučit programovat, je důležité znát nejen různé datové typy, ale také vědět, jak z každého z nich vytěžit maximum. Porozumění tomu, jak nejlépe využívat datové typy, není jen otázkou pochopení jejich funkčnosti, ale také toho, kolik paměti spotřebovávají (nebo šetří).
Co jsou primitivní datové typy v Javě?
V jazyce Java existuje celkem osm různých primitivních datových typů, které obsahují pevně definované rozsahy hodnot. Lze je rozdělit do čtyř kategorií: logické datové typy, integrální datové typy, datové typy s plovoucí desetinnou čárkou a znakové datové typy. Nemají žádné další speciální funkce a označují se také jako elementární datové typy. Každý datový typ má pevně stanovený počet bitů. Níže se budeme primitivními datovými typy zabývat podrobněji. Jazyk Java používá následující primitivní typy:
- boolean
- byte
- short
- int nebo integer
- long
- float
- double
- char
boolean
Datový typboolean v jazyce Java není numerický typ. Nabízí pouze dvě možné hodnoty: true a false. Lze jej použít k určení, zda podmínka platí (true) nebo ne (false). Jedná se o logický datový typ a jeho výchozí hodnota je false. Skládá se z 1 bitu a má následující syntaxi:
boolean booleanVar;javabyte
byte je integrální datový typ reprezentovaný jako hodnota doplňku k dvojce o velikosti 8 bitů nebo 1 bajtu. Obvykle se používá k úspoře paměti ve větších polích. Jeho rozsah hodnot je od -128 do 127 a jeho výchozí hodnota je 0. Zde je jeho syntaxe:
byte byteVar;javashort
short je také jedním z integrálních datových typů v Javě a používá se hlavně k úspoře paměti ve větších polích. Hodnota doplňku k dvojici má velikost 16 bitů nebo 2 bajty a její rozsah se pohybuje od -32768 do 32767 včetně. Výchozí hodnota je 0. Takto se používá short:
short shortVarjavaint nebo celé číslo
int nebo celé číslo je také hodnota doplňku k dvojce a integrální datový typ o velikosti 4 bajty nebo 32 bitů. Jeho hodnotový rozsah zahrnuje celá čísla mezi -2147483648 a 2147483647 a jeho výchozí hodnota je 0. Jeho syntaxe je následující:
int intVarjavalong
Největší integrální datový typ je long. To se týká jednak jeho hodnotového rozsahu, který je mezi -9223372036854775808 a 9223372036854775807, a jednak jeho vlastní velikosti, která je 8 bajtů nebo 64 bitů. Hodnota doplňku k dvojce se proto používá, pokud ostatní integrální datové typy nestačí. Vyžaduje však také zdaleka nejvíce paměti. Jeho výchozí hodnota je 0. Toto je jeho syntaxe:
lomg longVarjavafloat
float je datový typ s plovoucí desetinnou čárkou a používá se k ukládání reálných čísel. Má velikost 32 bitů a odpovídá standardu IEEE 754, který definuje standardní reprezentaci binárních a desítkových čísel s plovoucí desetinnou čárkou v počítačích. Standardní hodnota float je 0,0 a v jeho hodnotovém rozsahu lze reprezentovat až sedm desetinných míst. Ve srovnání s double však float není tak přesný, a proto by se neměl používat pro hodnoty, u nichž hraje přesnost rozhodující roli. Pokud tomu tak není, můžete použít float, abyste ušetřili místo. Syntaxe pro float je následující:
float floatVar;javadouble
double je asi dvakrát přesnější než float a plní podobný účel. Má velikost 64 bitů a může reprezentovat až 16 desetinných míst. Jeho výchozí hodnota je také 0,0. Pokud potřebujete přesnější hodnoty, měli byste vždy použít double, i když ani tento datový typ není tak přesný. Pokud chcete pracovat s naprosto přesnými hodnotami, měli byste místo toho použít třídu BigDecimal. Syntaxe double je následující:
double doubleVar;javachar
char je datový typ znaků. Ukládá znaky na základě znakové sady Unicode, což umožňuje přenositelnost na řadu různých platforem. Každý znak vyžaduje 2 bajty paměti. Jeho hodnotový rozsah odpovídá ASCII (American Standard Code for Information Interchange) a nachází se mezi „\u0000“ (tj. 0) a „\uffff“ (odpovídá 65535). Výchozí hodnota char je „\u0000“ a jeho syntaxe vypadá takto:
char charVarjavaCo jsou komplexní datové typy v Javě?
Druhým typem datových typů v Javě jsou referenční typy, také označované jako komplexní datové typy. Nazývají se referenčními typy, protože odkazují na objekty. Na rozdíl od primitivních datových typů nejsou obvykle předdefinovány, ale určuje je programátor (výjimkou je řetězec). Mohou používat metody a mohou mít také hodnotu 0 (ve smyslu prázdné). Zatímco primitivní datové typy začínají malým písmenem, referenční typy začínají velkým písmenem. Zde se podíváme na nejdůležitější referenční typy.
Struny
String je třída, kterou lze použít k reprezentaci posloupnosti znaků, čímž se tento složitý datový typ odlišuje od primitivního datového typu char i od jiných datových typů. Řetězec existuje jako objekt v třídě java.lang. Různé metody třídy String umožňují zkoumat jednotlivé znaky v řetězci, porovnávat řetězce mezi sebou, prohledávat řetězce a kopírovat řetězce. Řetězce jsou označeny uvozovkami. Syntaxe tohoto referenčního typu vypadá takto:
<string_type> <string_variable> = "<string_sequence>";javaZde je příklad toho, jak fungují řetězce:
// How to create a string without a new operator
String a = "This is your new string";
/ / How to create a string with a new operator
String a1 = new string ("This is your new string");javaPole
Pole se používají k ukládání několika hodnot do jedné proměnné namísto vytváření různých proměnných pro každou jednotlivou hodnotu. Vytvářejí se pomocí hranatých závorek. Uložené hodnoty se umisťují do složených závorek a oddělují se čárkami. Zde je syntaxe pro pole:
dataType[] arrayName = {value1, value2, value3,…};javaPokud chcete vytvořit pole s řetězci, můžete to udělat takto:
String[] colors = {"blue", "red", "yellow", "purple"};javaTakto vytvoříte pole s celými čísly:
int[] figures = {5, 10, 15, 20};javaTřídy
V Javě jsou třídy datové typy, které slouží jako šablona pro vytváření objektů. Obsahují různé komponenty, včetně názvu třídy, modifikátorů a těla uzavřeného v složených závorkách. Zde je příklad toho, jak vypadá třída v Javě:
public class Main {
int a = 10;
}javaRozhraní
V Javě je rozhraní abstraktní třídou. Funguje jako rozhraní, přes které může třída přistupovat k různým funkcím. K tomu je však nutné je nejprve implementovat. Rozhraní obsahují pouze konstanty a abstraktní metody. Jejich syntaxe vypadá takto:
interface {
abstract methods
}javaUkážeme si na jednoduchém příkladu, jak rozhraní fungují:
interface Pizza {
public void ingredientsList();
public void preparation();
}
class Mushroom implements Pizza {
public void ingredientsList() {
System.out.println("mushrooms, tomato sauce, oregano, mozzarella");
}
public void preparation() {
System.out.println("The pizza will be ready in 15 minutes.");
}
}
class Main {
public static void main(String[] args) {
Mushroom myMushroom = new Mushroom();
myMushroom.ingredientsList();
myMushroom.preparation();
}
}javaOdpovídající výstup z příkazu Java System.out.println vypadá takto:
mushrooms, tomato sauce, oregano, mozzarella
The pizza will be ready in 15 minutes.javaObjekty
V Javě jsou objekty také komplexním datovým typem. Objekty jsou instance tříd, které mohou vzájemně komunikovat pomocí metod. V následujícím příkladu vytvoříme několik objektů v třídě Main:
public class Main {
int a = 10;
public static void main(String[] args) {
Main myObj1 = new Main();
Main myObj2 = new Main();
System.out.println(myObj1.a);
System.out.println(myObj2.a);
}
}javaVýstup vypadá takto:
10
10javaVýčty
Enumy jsou speciální třída, která vám umožňuje začlenit neměnné konstanty do vašeho kódu. Těmto proměnným jsou přiřazeny pevné hodnoty, které nelze změnit. Tento datový typ je obzvláště užitečný, pokud potřebujete proměnné, které by měly mít pouze několik možných stavů. Syntaxe enumu vypadá takto:
enum NameOfTheClass {
VALUE1,
VALUE2,
VALUE3
}java