‫منظوز از Autoboxing و Unboxing چیست ؟
[ answered , oop ]

زمانی که کامپایلر جاوا بصورت خودکار یه primitive type رو به کلاس متناظرش تبدیل میکنه، autoboxing میگن. بطور مثال تبدیل int به Integer و double به Double رو autoboxing میگن. توی کد زیر کامپایلر بجای اینکه خطا بده متغیر i از نوع int هست و نمیشه توی لیستی از integerها اضافش کرد، خود عمل autoboxing رو انجام میده و بعد توی لیست اضافش میکنه.

```java List li = new ArrayList<>(); for (int i = 1; i < 50; i += 2) li.add(i); ``` به برعکس تبدیل قبلی که گفته شد هم unboxing میگن. یعنی یه Integer تبدیل به int بشه. این autoboxing و unboxing کمک میکنه که دولوپر کد تمیزتر و با قابلیت خوانایی بالاتری بنویسه. فقط باید به این نکته دقت کرد که این عمل اگر خیلی زیاد تکرار بشه از لحاظ پرفورمنسی خوب نیست و اگر میشه باید جوری کد رو بنویسیم که نیاز به این عمل نباشه. اگر نمیدونید کلاس‌های متناظر primitive typeها چی هستند، میتونید از جدول زیر کمک بگیرید.
| Primitive Type | Wrapper Class | |----------------|---------------| | boolean | Boolean | | byte | Byte | | char | Character | | float | Float | | int | Integer | | long | Long | | short | Short | | double | Double |