Melyek a különböző adattípusok Java-ban?
A Java nyolc primitív adattípust és számos komplex adattípust kínál. Ezek határozzák meg, hogy mely értékek tárolhatók és jeleníthetők meg egy változóban. Bizonyos adattípusok minden változóhoz hozzárendelve vannak a Java-ban.
Milyen adattípusok vannak a Java-ban?
Minden programozási nyelvben vannak különböző adattípusok, amelyek specifikus objektumokat és definiált műveleteket tartalmaznak. Bár a különböző nyelvek által kínált adattípusok gyakran hasonlítanak egymásra, néha jelentős különbségek is vannak közöttük. Ha például összehasonlítjuk a Python és a Java nyelveket és azok adattípusait, akkor hasonlóságokat fogunk észrevenni közöttük, de számos különbséget is, amelyek miatt a nyelvek különböző típusú feladatokra alkalmasak.
A Java kétféle adattípust használ: primitív és komplex. A komplex adattípusokat referenciatípusoknak is nevezik. A primitív és komplex adattípusok méretükben különböznek egymástól, és meghatározzák, hogy mely értékek tárolhatók egy változóban. Míg a primitív adattípusok csak egyszerű értékeket tudnak tárolni, a referenciatípusokat komplexebb struktúrák létrehozására, valamint nagy mennyiségű adat szervezésére és kezelésére használják.
Ha meg akarsz tanulni programozni, fontos, hogy ne csak a különböző adattípusokat ismerd, hanem azt is, hogyan hozhatod ki belőlük a legtöbbet. Az adattípusok legjobb felhasználásának megértése nem csak a funkcióik megértésének kérdése, hanem annak is, hogy mennyi memóriát használnak (vagy takarítanak meg).
Mik azok a primitív adattípusok Java-ban?
A Java-ban összesen nyolc különböző primitív adattípus létezik, amelyek szigorúan meghatározott értéktartományokat tartalmaznak. Ezek négy kategóriába sorolhatók: logikai adattípusok, integrált adattípusok, lebegőpontos adattípusok és karakter adattípusok. Nincs további speciális képességük, ezért elemi adattípusoknak is nevezik őket. Minden adattípusnak fix számú bitje van. Az alábbiakban részletesebben áttekintjük a primitív adattípusokat. A Java a következő primitív típusokat használja:
- boolean
- byte
- rövid
- int vagy egész szám
- hosszú
- lebegőpontos
- kettős
- karakter
boolean
A Java boolean adattípusa nem numerikus típus. Csak két lehetséges értéket kínál: true és false. Használható annak meghatározására, hogy egy feltétel teljesül-e (true) vagy sem (false). Ez egy logikai adattípus, alapértelmezett értéke false. 1 bitből áll, és a következő szintaxissal rendelkezik:
boolean booleanVar;javabyte
byte egy integrált adattípus, amelyet 8 bites vagy 1 bájtos kétkomplementum értékkel ábrázolnak. Általában nagyobb tömbök memóriájának megtakarítására használják. Értéktartománya -128 és 127 között van, alapértelmezett értéke 0. Íme a szintaxisa:
byte byteVar;javashort
short szintén az egyik integrált adattípus a Java nyelvben, és főként a nagyobb tömbök memóriájának megtakarítására szolgál. A kiegészítő értéke 16 bit vagy 2 bájt méretű, értéktartománya pedig -32768-tól 32767-ig terjed. Alapértelmezés szerint értéke 0. short így használják:
short shortVarjavaint vagy egész szám
int vagy egész szám szintén kétkomplementum érték és integrált adattípus, mérete 4 bájt vagy 32 bit. Értéktartománya -2147483648 és 2147483647 közötti egész számokat tartalmaz, alapértelmezett értéke 0. Szintaxisa a következő:
int intVarjavalong
A legnagyobb integrált adattípus a long. Ez elsősorban az értéktartományára vonatkozik, amely -9223372036854775808 és 9223372036854775807 között van, másodsorban pedig a saját méretére, amely 8 bájt vagy 64 bit. A kiegészítő értéket ezért akkor használják, ha a többi integrált adattípus nem elegendő. Ugyanakkor ez igényli a legtöbb memóriát. Alapértelmezett értéke 0. Szintaxisa a következő:
lomg longVarjavafloat
float egy lebegőpontos adattípus, amelyet valós számok tárolására használnak. Mérete 32 bit, és megfelel az IEEE 754 szabványnak, amely meghatározza a bináris és decimális lebegőpontos számok szabványos ábrázolását a számítógépekben. A float szabványos értéke 0,0, és értékének tartományában legfeljebb hét tizedesjegy ábrázolható. A double típushoz képest azonban float nem olyan pontos, ezért nem szabad olyan értékekhez használni, ahol a pontosság döntő szerepet játszik. Ha azonban ez nem így van, akkor float használatával helyet lehet megtakarítani. A float szintaxisa a következő:
float floatVar;javadouble
double körülbelül kétszer olyan pontos, mint a float, és hasonló célt szolgál. Mérete 64 bit, és legfeljebb 16 tizedesjegyű számokat tud ábrázolni. Alapértelmezett értéke szintén 0,0. Ha pontosabb értékekre van szükség, mindig double kell használni, bár ez az adattípus sem túl pontos. Ha teljesen pontos értékekkel szeretne dolgozni, akkor inkább a BigDecimal osztályt használja. A double szintaxisa a következő:
double doubleVar;javachar
char egy karakter adattípus. Unicode karakterkészlet alapján tárolja a karaktereket, ami számos különböző platformra való hordozhatóságot tesz lehetővé. Minden karakter 2 bájt memóriát igényel. Értéktartománya megfelel az ASCII-nek (American Standard Code for Information Interchange), és a „\u0000” (azaz 0) és a „\uffff” (megfelel 65535-nek) között helyezkedik el. A char alapértelmezett értéke „\u0000”, szintaxisa pedig a következő:
char charVarjavaMik azok a komplex adattípusok Java-ban?
A Java második adattípusa a referenciatípusok, más néven komplex adattípusok. Referenciatípusoknak nevezik őket, mert objektumokra hivatkoznak. Az primitív adattípusokkal ellentétben általában nem előre definiáltak, hanem a programozó határozza meg őket (kivételt képez ez alól a string). Módszereket tudnak használni, és 0 értéket is felvehetnek (üres értelmében). Míg a primitív adattípusok kisbetűvel kezdődnek, a referenciatípusok nagybetűvel kezdődnek. Itt áttekintjük a legfontosabb referenciatípusokat.
Húrok
String egy osztály, amely karakterek sorozatának ábrázolására használható, megkülönböztetve ezzel ezt a komplex adattípust a primitív adattípustól char, valamint más adattípusoktól. A karakterlánc a java.lang osztályban objektumként létezik. A String osztály különböző módszerei lehetővé teszik a karakterlánc egyes karaktereinek vizsgálatát, a karakterláncok egymás közötti összehasonlítását, a karakterláncok keresését és másolását. A karakterláncokat idézőjelek jelölik. Ennek a referenciatípusnak a szintaxisa a következő:
<string_type> <string_variable> = "<string_sequence>";javaÍme egy példa a karakterláncok működésére:
// 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");javaTömbök
A tömbök arra szolgálnak, hogy egy változóban több értéket tároljanak, ahelyett, hogy minden egyes értékhez külön változót hoznának létre. Kvadratikus zárójelekkel hozhatók létre. A tárolt értékeket hullámjelek közé kell tenni, és vesszővel elválasztani. A tömbök szintaxisa a következő:
dataType[] arrayName = {value1, value2, value3,…};javaHa karakterláncokat tartalmazó tömböt szeretne létrehozni, akkor ezt így teheti meg:
String[] colors = {"blue", "red", "yellow", "purple"};javaÍgy hozhatunk létre egy egész számokból álló tömböt:
int[] figures = {5, 10, 15, 20};javaÓrák
A Java nyelvben az osztályok olyan adattípusok, amelyek sablonként szolgálnak objektumok létrehozásához. Különböző összetevőket tartalmaznak, beleértve az osztály nevét, módosítókat és egy hullámjelek között szereplő testet. Íme egy példa arra, hogyan néz ki egy osztály a Java nyelvben:
public class Main {
int a = 10;
}javaInterfészek
Java nyelven az interfész egy absztrakt osztály. Interfészként működik, amelyen keresztül egy osztály különböző funkciókhoz férhet hozzá. Ehhez azonban először implementálnia kell azokat. Az interfészek csak konstansokat és absztrakt módszereket tartalmaznak. Szintaxisuk a következő:
interface {
abstract methods
}javaEgy egyszerű példával mutatjuk be, hogyan működnek az interfészek:
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();
}
}javaA Java parancs System.out.println megfelelő kimenete így néz ki:
mushrooms, tomato sauce, oregano, mozzarella
The pizza will be ready in 15 minutes.javaTárgyak
Java-ban az objektumok szintén komplex adattípusok. Az objektumok osztályok példányai, amelyek módszerek segítségével tudnak egymással interakcióba lépni. A következő példában több objektumot fogunk létrehozni egy Main osztályban:
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);
}
}javaA kimenet így néz ki:
10
10javaEnumok
Az enumok egy speciális osztály, amely lehetővé teszi, hogy változatlan konstansokat építsen be a kódjába. Ezeknek a változóknak rögzített értékeket rendelnek hozzá, amelyeket nem lehet megváltoztatni. Ez az adattípus különösen hasznos, ha olyan változókra van szüksége, amelyeknek csak néhány lehetséges állapota lehet. Az enum szintaxisa így néz ki:
enum NameOfTheClass {
VALUE1,
VALUE2,
VALUE3
}java