Autoboxing dan Unboxing
Aturan konversi otomatis
Autoboxing dan Unboxing adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Konversi Otomatis
Pembungkusan otomatis adalah proses ketika Java secara otomatis mengonversi tipe primitif menjadi objek pembungkusnya. Pembukaan otomatis adalah kebalikannya, yaitu mengubah pembungkus kembali menjadi tipe primitif.
Hal ini terjadi secara diam-diam sehingga Anda dapat mencampurkan kedua dunia tersebut tanpa pemanggilan konversi secara manual.
Pembungkusan dalam Praktik
Menetapkan int ke variabel Integer memicu pembungkusan otomatis. Kompilator menyisipkan pemanggilan Integer.valueOf untuk Anda.
public class Main {
public static void main(String[] args) {
int primitive = 42;
Integer boxed = primitive;
System.out.println(boxed);
}
}Pembukaan dalam Praktik
Menetapkan Integer ke int memicu pembukaan otomatis. Kompilator menyisipkan pemanggilan intValue di balik layar.
public class Main {
public static void main(String[] args) {
Integer boxed = 99;
int primitive = boxed;
System.out.println(primitive);
}
}Pembungkusan dalam Koleksi
Tempat paling umum untuk melihat pembungkusan otomatis adalah ketika menambahkan tipe primitif ke dalam koleksi. Anda menulis list.add(5), lalu Java secara otomatis membungkus 5 menjadi Integer.
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> nums = new ArrayList<>();
nums.add(1);
nums.add(2);
int first = nums.get(0);
System.out.println(first);
}
}Operasi Aritmetika Membuka Pembungkus
Ketika Anda menggunakan operator matematika pada objek pembungkus, Java terlebih dahulu membukanya menjadi tipe primitif, melakukan perhitungan, lalu dapat membungkus kembali hasilnya.
Di bawah ini, dua nilai Integer dijumlahkan setelah keduanya dibuka.
public class Main {
public static void main(String[] args) {
Integer a = 10;
Integer b = 32;
int sum = a + b;
System.out.println(sum);
}
}Mencampurkan Tipe Primitif dan Pembungkus
Anda dapat dengan bebas mencampurkan tipe primitif dan pembungkus dalam sebuah ekspresi. Java membuka pembungkus tersebut sehingga kedua sisi menjadi tipe primitif selama perhitungan.
public class Main {
public static void main(String[] args) {
Integer wrapped = 7;
int raw = 3;
int product = wrapped * raw;
System.out.println(product);
}
}Pembungkusan dalam Pemanggilan Metode
Pembungkusan otomatis juga berlaku untuk argumen metode. Metode yang mengharapkan Object atau pembungkus dapat menerima tipe primitif, dan Java membungkusnya saat dimasukkan.
public class Main {
static void show(Object value) {
System.out.println("Got: " + value);
}
public static void main(String[] args) {
show(123);
show(true);
}
}Biaya Tersembunyi
Pembungkusan otomatis memang praktis, tetapi tidak gratis. Setiap pembungkusan membuat sebuah objek, dan perulangan intensif dapat membuat jutaan objek yang hanya berumur singkat.
Untuk perulangan numerik yang kritis bagi kinerja, gunakan tipe primitif secara langsung, bukan pembungkus.
public class Main {
public static void main(String[] args) {
long total = 0;
for (int i = 0; i < 5; i++) {
total += i;
}
System.out.println(total);
}
}valueOf Dibandingkan Pembuatan Baru
Pembungkusan otomatis menggunakan Integer.valueOf, yang menyimpan sementara nilai kecil antara -128 dan 127. Pemanggilan new Integer(...) selalu membuat objek baru dan kini sudah tidak digunakan lagi.
Biarkan pembungkusan otomatis menjalankan tugasnya.
public class Main {
public static void main(String[] args) {
Integer cached = Integer.valueOf(50);
System.out.println(cached);
}
}Ekspresi Ternari dan Pembungkusan
Aturan yang agak tersamar: dalam ekspresi ternari, jika satu cabang berupa tipe primitif dan cabang lainnya berupa pembungkus, Java mungkin membuka keduanya menjadi tipe primitif yang sama.
Hal ini umumnya aman, tetapi perlu diingat bahwa konversi yang tidak Anda duga dapat terpicu.
public class Main {
public static void main(String[] args) {
boolean flag = true;
Integer result = flag ? 1 : 2;
System.out.println(result);
}
}Kapan Ini Membantu
Pembungkusan otomatis dibuat untuk membuat kode lebih mudah dibaca ketika mencampurkan tipe primitif dengan tipe generik dan koleksi. Jika digunakan dengan bijak, pembungkusan ini mengurangi kerumitan. Jika digunakan sembarangan dalam perulangan yang sering dijalankan, kinerja akan menurun.
Pemeriksaan Singkat
Periksa pemahaman Anda tentang aturan pembungkusan otomatis.
Rangkuman
Anda telah mempelajari cara kerja pembungkusan dan pembukaan otomatis:
- Pembungkusan otomatis mengubah tipe primitif menjadi pembungkus menggunakan
valueOf - Pembukaan otomatis mengubah pembungkus kembali menjadi tipe primitif menggunakan metode seperti
intValue - Hal ini terjadi dalam penetapan nilai, koleksi, operasi aritmetika, dan pemanggilan metode
- Proses ini praktis tetapi membuat objek, jadi hindarilah dalam perulangan yang sering dijalankan
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Autoboxing dan Unboxing” gratis?
Ya — teks lengkap “Autoboxing dan Unboxing” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Autoboxing dan Unboxing”?
Aturan konversi otomatis Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Autoboxing dan Unboxing” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Tipe Primitif versus Pembungkus
- Autoboxing dan Unboxing
- Parsing dan Valueof
- Jebakan Autoboxing