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ípus | Méret (bit) | Minimális | Maximális | Példa |
---|---|---|---|---|
byte | 8 | -27 | 27– 1 | bájt b = 100; |
rövid | 16 | -215 | 215– 1 | rövid s = 30_000; |
int | 32 | -231 | 231– 1 | int i = 100_000_000; |
hosszú | 64 | -263 | 263– 1 | hosszú l = 100_000_000_000_000; |
úszó | 32 | -2-149 | (2-2-23)·2127 | úszó f = 1,456f; |
kettős | 64 | -2-1074 | (2-2-52)·21023 | kettős f = 1,456789012345678; |
char | 16 | 0 | 216– 1 | char c = ’c’; |
logikai | 1 | – | – | logikai 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.