Bevezetés a Java primitívekbe

1. Áttekintés

A Java programozási nyelv nyolc primitív adattípust tartalmaz.

Ebben a cikkben felidézzük, mi a primitív, és átmegyünk rajtuk.

2. Primitív adattípusok

A Java-ban definiált nyolc primitív az int, byte, rövid, hosszú, úszó, kettős, logikai, és char - ezek nem tekinthetők objektumnak, és nyers értékeket képviselnek.

Közvetlenül a veremben tárolják (ebben a cikkben talál további információt a Java memóriakezeléséről).

Vessünk egy pillantást a tárhely méretére, az alapértelmezett értékekre és az egyes típusok használatának példáira.

Kezdjük egy gyors áttekintéssel:

típusMéret (bit)MinimálisMaximálisPélda
byte8-2727– 1bájt b = 100;
rövid16-215215– 1rövid s = 30_000;
int32-231231– 1int i = 100_000_000;
hosszú64-263263– 1hosszú l = 100_000_000_000_000;
úszó32-2-149(2-2-23)·2127úszó f = 1,456f;
kettős64-2-1074(2-2-52)·21023kettős f = 1,456789012345678;
char160216– 1char c = ’c’;
logikai1logikai b = igaz;

2.1. int

Az első primitív adattípus, amelyre kiterjedünk int. Egész számként is ismert, int típusa a nem tört számértékek széles skáláját tartalmazza.

Kimondottan, A Java 32 bites memória használatával tárolja. Más szavakkal, -2 147 483 648 (-231) és 2 147 483 647 (231–1) értékeket képviselhet.

A Java 8-ban új speciális segítő függvények használatával 4 294 967 295 (232-1) értékig tárolhat egy előjel nélküli egész értéket.

Egyszerűen kijelenthetjük a int egyszerűen:

int x = 424_242; int y;

Az. Alapértelmezett értéke int feladat nélkül deklarált 0.

Ha a változót egy módszer definiálja, akkor használnunk kell egy értéket.

Minden szabványos számtani műveletet elvégezhetünk ezen ints. Csak légy tisztában ezzel a tizedesértékeket levágjuk amikor ezeket egész számokon hajtjuk végre.

2.2. byte

byte egy primitív adattípus, amely hasonló a int, kivéve csak 8 bit memóriát foglal el. Így miért hívjuk bájtnak. Mivel a memória mérete olyan kicsi, byte csak -128 (-27) és 127 (27 - 1) közötti értékeket képes megtartani.

Alkothatunk byte:

bájt b = 100; bájt üres;

A. Alapértelmezett értéke byte szintén 0.

2.3. rövid

A Java elsődleges adattípusainak listáján a következő állomás az rövid.

Ha memóriát akarunk menteni és byte túl kicsi, a kettőt félúton használhatjuk: rövid.

16 bites memória esetén fele akkora int és kétszer akkora byte. A lehetséges értékek tartománya -32 768 (-215) - 32 767 (215 - 1).

rövid így nyilatkozik:

rövid s = 202_020; rövid s;

A többi típushoz hasonlóan az alapértelmezett érték 0. Használhatunk rajta minden szokásos számtant.

2.4. hosszú

Utolsó egész számokkal kapcsolatos primitív adattípusunk a hosszú.

hosszú a nagy testvére int. 64 bites memóriában van tárolva így a lehetséges értékek lényegesen nagyobb halmazát képes megtartani.

A hosszú érték lehetséges értékei -9 223 372 036 854 775 808 (-263) és 9 223 372 036 854 775 807 (263 - 1) között vannak.

Egyszerűen kijelenthetjük az egyiket:

hosszú l = 1_234_567_890; hosszú l;

A többi egész típusú típushoz hasonlóan az alapértelmezett is 0. Minden aritmetikát be tudjuk használni hosszú hogy működik int.

2.5. úszó

Az Java törzsszámokat a úszó típus. Ez egy pontosságú tizedesjegy. Ami azt jelenti, hogy ha hat tizedesjegyen túllépünk, ez a szám kevésbé pontos és inkább becsléssé válik.

A legtöbb esetben nem érdekel a precíziós veszteség. De ha számításunk abszolút pontosságot igényel (azaz pénzügyi műveletek, holdra szállás stb.), Akkor ehhez a munkához speciális típusokat kell használnunk. További információt a Java Big Decimal osztályban talál.

Ezt a típust 32 bit memóriában tárolják, akárcsak int. Ugyanakkor a lebegő tizedespont miatt a tartománya nagyon különbözik. Pozitív és negatív számokat egyaránt képviselhet. A legkisebb tizedesjegy 1,40239846 x 10-45, a legnagyobb pedig 3,40282347 x 1038.

Kijelentjük úszós ugyanaz, mint bármely más típus:

úszó f = 3,145f; úszó f;

Az alapértelmezett érték 0 helyett 0,0. Ezenkívül vegye figyelembe, hogy hozzáadjuk a f jelölés a szó szerinti szám végére az úszó meghatározásához. Ellenkező esetben a Java hibát dob, mert a tizedesérték alapértelmezett típusa kettős.

Ezen kívül elvégezhetjük az összes szokásos számtani műveletet is úszós. Fontos azonban megjegyezni, hogy a lebegőpontos aritmetikát egészen másként hajtjuk végre, mint az egész számtant.

2.6. kettős

Ezután megnézzük kettős - neve onnan származik, hogy ez kettős pontosságú tizedesjegy.

64 bites memóriában van tárolva. Ami azt jelenti, hogy a lehetséges számok sokkal nagyobb tartományát képviseli, mint úszó.

Bár ugyanolyan pontossági korlátoktól szenved, mint úszó csinál. A tartomány 4,9406564584124654 x 10-324 és 1,7976931348623157 x 10308. Ez a tartomány lehet pozitív vagy negatív is.

Nyilatkozat kettős megegyezik más numerikus típusokkal:

dupla d = 3,13457599923384753929348D; dupla d;

Az alapértelmezett érték szintén 0,0, ahogy van úszó.Hasonló úszó, csatoljuk a levelet D hogy a szó szerinti szót kettősnek jelölje.

2.7. logikai

A legegyszerűbb primitív adattípus az logikai. Csak két értéket tartalmazhat: igaz vagy hamis. Értékét egyetlen bitben tárolja.

A kényelem kedvéért azonban a Java kitölti az értéket, és egyetlen bájtban tárolja.

Kijelent logikai mint ez:

logikai b = igaz; logikai b;

Az érték nélküli deklarálás alapértelmezett értéke: hamis. logikai a programfolyamatunk ellenőrzésének sarokköve. Használhatunk logikai operátorokat rajtuk (azaz és, vagy stb.).

2.8. char

A végső megnézendő primitív adattípus az char.

Karakternek is nevezik, char egy 16 bites egész szám, amely Unicode kódolású karaktert képvisel. Tartománya 0 és 65 535 között van. Ami Unicode-ban képviseli „\ U0000” nak nek „\ Uffff”.

Az összes lehetséges Unicode-érték felsorolásához keresse fel az olyan webhelyeket, mint az Unicode Table.

Nyilatkozjuk most a char:

char c = 'a'; char c = 65; char c;

Változóink definiálásakor bármilyen karaktert használhatunk, és ezek automatikusan átalakulnak számunkra Unicode kódolássá. A karakterek alapértelmezett értéke ’/ U0000’.

2.9. Túlcsordulás

A primitív adattípusok méretkorlátokkal rendelkeznek. De mi történik, ha megpróbálunk a maximálisnál nagyobb értéket tárolni?

Nevezett helyzetbe ütközünk túlcsordulás.

Amikor egy egész szám túlcsordul, átgördül a minimális értékre, és onnan kezdi a számlálást.

A lebegőpontos szám túlcsordul az Infinity visszatérésével. Alulcsorduláskor 0,0-t adnak vissza.

Íme egy példa:

int i = Egész.MAX_ÉRTÉK; int j = i + 1; // j átkerül a -2_147_483_648 kettősre d = Double.MAX_VALUE; kettős o = d + 1; // o a Végtelen lesz

Alulcsordulás ugyanaz a kérdés, kivéve, ha a minimálisnál kisebb értéket tárolunk.

2.10. Autoboxolás

Minden primitív adattípus rendelkezik egy teljes Java osztályú megvalósítással is, amely be tudja burkolni. Például a Egész szám osztályba csomagolhat egy int. Néha szükség van a primitív típusról az objektum burkolóra való átalakításra (pl. Generikusokkal való használatra).

Szerencsére a Java automatikusan elvégzi ezt az átalakítást számunkra. Hívjuk ezt a folyamatot Autoboxolás. Íme egy példa:

C = 'c' karakter; Egész szám i = 1;

3. Következtetés

Ebben az oktatóanyagban bemutattuk a Java által támogatott nyolc primitív adattípust.

Ezeket az építőkockákat használja a legtöbb, nem az összes Java-program - így érdemes megérteni, hogyan működnek.