Apa itu Autoboxing dan Unboxing di java?

Feb 19 2023
Autoboxing : Autoboxing adalah fitur di java yang secara otomatis mengubah tipe data primitif menjadi objek kelas pembungkus yang sesuai. Misalnya, mengonversi int menjadi Integer, double menjadi Double, dan seterusnya.

Sebuah otobox:

Autoboxing adalah fitur di java yang secara otomatis mengubah tipe data primitif menjadi objek kelas pembungkus yang sesuai. Misalnya, mengonversi int menjadi Integer, double menjadi Double, dan seterusnya.

Contoh paling sederhana dari autoboxing adalah:

Karakter ch = 'c'

di mana 'c' adalah tipe primitif (karakter) yang secara otomatis dikonversi ke kelas pembungkus yang sesuai (Karakter).

Di mana ini bisa berguna selama praktik pengkodean?

Autoboxing berguna dengan daftar (seperti ArrayList, LinkedList, dll.). Mari kita ambil contoh ArrayList.

Seperti yang kita ketahui ArrayList hanya berisi sebuah objek, bukan tipe data primitif yang berarti kita dapat menyimpan objek dari kelas wrapper tetapi kita tidak dapat menyimpan tipe data primitif di dalam ArrayList. Misalnya ArrayList<Integer> arr = new ArrayList<Integer>() ; ini sah. Tapi ArrayList<int> arr = new ArrayList<int>() ; ini tidak valid.

Mari pertimbangkan cuplikan kode yang ditulis di bawah ini.

Menjelaskan Autoboxing (gbr 1.a)

Meskipun kami menambahkan nilai int sebagai tipe primitif, daripada objek Integer, kode berhasil dikompilasi dan tidak menghasilkan kesalahan waktu kompilasi. Karena kompiler JVM mengubah kode sebelumnya menjadi kode berikut:

Bagaimana kompiler mengonversi kode dari gbr 1.a selama kompilasi (gbr 1.b)

Di sini, konversi tipe primitif int ke kelas pembungkus Integer selama operasi penambahan disebut Autoboxing.

Membuka kemasan :

Unboxing adalah fitur di java yang secara otomatis mengubah objek kelas pembungkus menjadi tipe data primitif yang sesuai. Misalnya, mengonversi Integer menjadi int, Double menjadi double, dan seterusnya.

Unboxing adalah proses kebalikan dari Autoboxing.

Di mana ini bisa berguna selama praktik pengkodean?

Unboxing membantu pemrogram, karena akan memudahkan untuk melakukan beberapa operasi seperti operasi aritmatika pada struktur data yang menyimpan objek kelas pembungkus seperti Daftar. Sebagai Contoh:

Menjelaskan Unboxing (gbr 2.a)

Meskipun nilai yang disimpan di dalam daftar (arr) bertipe Integer, sementara kita menambahkan nilai tersebut ke total variabel tipe int, nilai Integer secara otomatis dikonversi menjadi int. Yang akan memudahkan programmer untuk melakukan operasi aritmatika.

Kode berhasil dikompilasi dan tidak menghasilkan kesalahan waktu kompilasi. Karena kompiler JVM mengubah kode sebelumnya menjadi kode berikut:

Bagaimana kompiler mengubah kode dari gambar 2.a selama kompilasi (gambar 2.b)

Di sini, konversi int (tipe primitif) ke Integer (objek kelas Wrapper) disebut Unboxing.

Tabel berikut sangat membantu karena menunjukkan tipe data primitif dengan kelas pembungkusnya yang sesuai.

tabel asosiasi antara tipe primitif dan kelas pembungkus