Mi a csomagolás és kicsomagolás (ökölvívás

Munkavégzés tárgyak szükségessé memória felső és a sebesség. Ennek elkerülése érdekében a változók primitív típusok használnak. Ez valójában egyszerű változók, mint a C vagy C ++ nyelven. byte foglal 1 byte memóriát, int és float - 4 byte hosszú és dupla - .. 8 bájt, stb eltérően műveletek tárgyakkal, műveletek változó primitívek nem igényelnek allokációs / felszabadítás és gyorsan végrehajtják - ők a legtöbb esetben végül össze egy egyszerű processzor utasítás, amely lehetővé teszi programok Java gyakran olyan sebességgel hasonlítható írt programok egyszerű összeállítása (közvetlenül gépi kód) nyelvek (például a C, C ++).

A hátránya bennük az, hogy nem tud mit tehetünk az összes objektum - nem rendelkeznek a módszerek (nem lehet például, hogy írjon nekik nem kell elhelyezni a gyűjtemény, és így tovább.

Annak érdekében, hogy megkerüljék ezt a kellemetlenséget, minden primitív típusok léteznek megfelelő átalakító osztályok, tárgyak, amelyeken elfér értékeket primitív típusok, de ez az összes tulajdonságait normál tárgyak:

Minden shell tárgyak - .. Változatlan (megváltoztathatatlan) típusú, azaz, ha szánunk egy új értéket, sőt a csere még egy objektum létrehoz egy újat.

Válaszol október 28 '16 at 13:47

A verziók alacsonyabb JDK 1.5 nem volt könnyű átalakítani primitív adattípusok, mint például int, char, float, double az osztályokat Egész shell, Character, Float, Double. Kezdve JDK 5-ös verzió ezt a funkciót, átalakítása primitívek, hogy egyenértékű tárgyakat valósul automatikusan. Ez a tulajdonság az úgynevezett Avtoupakovka (Autoboxing). A fordított folyamat, illetve - kicsomagolása (Unboxing) azaz A folyamat átalakításának tárgyak be a megfelelő primitív típusok.

Mintakódja avtoupakovki és dekompressziós az alábbiakban mutatjuk be:

Ha használt avtoupakovka és kicsomagolás?

Avtoupakovka Java fordító használjuk fel a következő feltételeket:

  • Amikor egy primitív típusú értéket vezetünk az eljárás, mint a beállítási mód, amely elvárja, hogy a tárgy megfelelő wrapper osztályt.
  • Amikor egy ősi típus rendelt érték a változó megfelelő wrapper osztályt.

Válaszol október 28 '16 a 12:16

Kapcsolódó cikkek