Lucrul cu obiecte necesită o memorie de deasupra capului și viteza. Pentru a evita acest lucru, sunt folosite variabilele de tipuri primitive. Este, de fapt, variabile simple, cum ar fi C sau C ++. octet ocupă 1 octet de memorie, int si float - 4 bytes, lungi si duble - .. 8 octeți etc. Spre deosebire de operațiuni cu obiecte, operații cu primitivele variabile nu necesită alocarea / dealocarea și puse în aplicare rapid - acestea în cele mai multe cazuri, în cele din urmă compilate într-un simplu instrucțiuni de procesor, care permite programe în Java operează adesea la viteze comparabile cu programe scrise în compilare simplu (direct în cod mașină) limbi (cum ar fi cele ca C, C ++).
Dezavantajul cu ei este că ei nu pot face ceea ce se poate face cu toate obiectele - ei nu au metodele (nu poți, de exemplu, pentru a scrie ei nu ar trebui să fie plasate în colectarea, și așa mai departe.
Pentru a ocoli acest inconvenient, pentru toate tipurile primitive există clase wrapper adecvate, obiecte care pot lua valori de tipuri primitive, dar are toate proprietățile obiectelor normale:
Toate obiectele coajă - .. Tipuri de imuabile (imuabile), adică, atunci când vom atribui o valoare nouă, de fapt, înlocuirea este încă un obiect creează unul nou.
Răspuns 28 '16 octombrie, la 13:47
În versiunile mai mici decât JDK 1.5 nu a fost ușor pentru a converti tipurile de date primitive, cum ar fi int, char, float, dublu clasele lor Integer coajă, caracter, Float, Double. Incepand cu JDK versiunea 5 această funcție, conversia primitivelor la obiecte echivalente, se realizează în mod automat. Această proprietate este cunoscut sub numele de Avtoupakovka (Autoboxing). Procesul invers, respectiv - Unpacking (Unboxing) adică procesul de conversie a obiectelor în tipurile lor primitive corespunzătoare.
Exemplu de cod pentru avtoupakovki și decomprimare sunt prezentate mai jos:
Atunci când este utilizat avtoupakovka și despachetarea?
compilator Avtoupakovka Java este utilizat în următoarele condiții:
- Atunci când o valoare de tip primitiv este trecut în metoda ca metodă de setare, care se așteaptă ca obiectul care corespunde clasei înveliș.
- Atunci când o valoare de tip primitiv atribuit variabilei corespunzătoare clasei înveliș.
Răspuns 28 '16 octombrie, la 12:16