زمانی که کامپایلر جاوا بصورت خودکار یه 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 |