Sobes.tech
Junior

Qanday qilib siz referens turlarini primitivlarga va aksincha o'zgartirasiz?

sobes.tech AI

AIdan javob

Referens tiplari (masalan, Integer, Double, Boolean) uchun avtomatik qadoqlash (autoboxing) ishlatiladi. JVM, zarur bo'lsa, referens tipini avtomatik tarzda uning primitiv ekvivalentiga aylantiradi.

// Primitiv tip
int primitiveInt = 10;

// Primitivdan referens tip yaratish (autoboxing)
Integer objectInt = primitiveInt; // Avtomatik int'dan Integer'ga o'tish

// Referens tipni qaytadan primitivga aylantirish (auto-unboxing)
int newPrimitiveInt = objectInt; // Avtomatik Integer'dan int'ga o'tish

Primitiv tiplardan referens tiplarga (masalan, int dan Integer, double dan Double, boolean dan Boolean) autoboxing ishlatiladi. JVM avtomatik tarzda primitiv qiymatdan referens ob'ekt yaratadi.

// Primitiv tip
double primitiveDouble = 3.14;

// Primitivdan referens tip yaratish (autoboxing)
Double objectDouble = primitiveDouble; // Avtomatik double'dan Double'ga o'tish

// Referens tipni qaytadan primitivga aylantirish (auto-unboxing)
double newPrimitiveDouble = objectDouble; // Avtomatik Double'dan double'ga o'tish

E'tibor bering, referens tipini primitivga aylantirish (unboxing) jarayonida null qiymatga ega bo'lsa, NullPointerException yuzaga kelishi mumkin.

Shuningdek, autoboxing/autounboxingdan oldin, intValue(), doubleValue(), booleanValue() kabi aniq metodlar yordamida referens tiplardan primitivlarga o'tkazish amalga oshirilardi, va konstruktorlar yoki valueOf() statik metodlari yordamida primitivlardan referens tiplarga o'tkazish qilinardi. Autoboxing/autounboxing bu jarayonni sezilarli darajada soddalashtirdi.

// Autoboxing/autounboxingdan oldingi aniq o'tkazish
Integer explicitInteger = new Integer(25); // Konstruktor yordamida (eskirgan)
int explicitInt = explicitInteger.intValue(); // intValue() metodidan foydalanish

// `valueOf()` statik metodidan foydalanish (afzal)
Integer valueOfInteger = Integer.valueOf(50);
int valueOfInt = valueOfInteger.intValue();