Sobes.tech
Junior

Java'da avtomat qadoqlash va qadoqlashdan chiqarish nima?

sobes.tech AI

AIdan javob

Autoboxing va Unboxing - bu primitiv turlar (masalan, int, char) va ularning mos keladigan qadoqlovchi sinflari (Integer, Character) o'rtasidagi avtomatik konvertatsiyalar.

Autoboxing:

  • Primitiv tur avtomatik ravishda mos keladigan qadoqlovchi sinf ob'ektiga aylantiriladi.
  • Bu, primitiv qiymatlarni qadoqlovchi sinflarga tayinlash, primitiv qiymatlarni qadoqlovchi sinflar kutadigan metodlarga o'tkazish va primitiv qiymatlarni ob'ektlar saqlaydigan kolleksiyalarga qo'shish imkonini beradi.
// Autoboxing
int primitiveInt = 10;
Integer wrapperInt = primitiveInt; // Primitiv int avtomatik ravishda Integer ga aylantiriladi

// Kolleksiyada foydalanish
List<Integer> integerList = new ArrayList<>();
integerList.add(20); // 20 primitiv int avtomatik ravishda Integer ga aylantiriladi

Unboxing:

  • Qadoqlovchi sinf ob'ekti avtomatik ravishda mos primitiv turga aylantiriladi.
  • Bu, qadoqlovchi ob'ektlarni primitiv o'zgaruvchilarga tayinlash, qadoqlovchi ob'ektlarni primitiv qiymatlarni kutadigan metodlarga o'tkazish va qadoqlovchi ob'ektlarni arifmetik operatsiyalarda ishlatish imkonini beradi.
// Unboxing
Integer wrapperInt = 100;
int primitiveInt = wrapperInt; // Integer ob'ekti avtomatik ravishda int ga aylantiriladi

// Arifmetik operatsiyada foydalanish
Integer a = 5; // Autoboxing
Integer b = 3; // Autoboxing
int sum = a + b; // a va b ning unboxing bilan qo'shilishi

G'oya:

Autoboxing va Unboxing ning asosiy g'oyasi kodni soddalashtirish, uni o'qilishi osonroq qilish va qadoqlovchi ob'ektlarni yaratish yoki primitiv qiymatlarni chiqarish ehtiyojini kamaytirishdir. Bu, primitiv turlarni ob'ektlar talab qilinadigan kontekstlarda, konstruktorlar yoki intValue(), doubleValue() va boshqalar kabi metodlarni aniq chaqirmasdan ishlatishga imkon beradi.

E'tibor berish kerakki, Autoboxing va Unboxing qo'shimcha ob'ektlar yaratadi va ayniqsa sikllarda yoki intensiv foydalanishda biroz sekinlashtirishi mumkin. Shuningdek, Unboxing paytida ob'ektlardagi null qiymatlar NullPointerException ga olib kelishi mumkin.