Memahami int vs Integer di Java: Perbedaan Utama, Praktik Terbaik, dan Kesalahan Umum

目次

1. Pengantar

Dasar-Dasar Tipe Integer di Java

Saat bekerja dengan angka di Java, salah satu tipe data paling mendasar adalah “tipe integer” (int). Ini adalah tipe primitif yang sering digunakan untuk perhitungan numerik dalam program, memungkinkan pemrosesan yang cepat dan efisien memori.

Di sisi lain, Java juga menyediakan kelas yang disebut Integer. Ini dikenal sebagai kelas wrapper, dirancang untuk memungkinkan nilai int ditangani sebagai objek, mengikuti filosofi berorientasi objek Java.

Meskipun kedua tipe ini tampak mirip, ada perbedaan yang jelas dalam tujuan dan perilakunya. Akibatnya, pemula di Java sering bertanya-tanya, “Apa perbedaan antara int dan Integer?” atau “Bagaimana saya harus menggunakan masing-masing dengan tepat?”

Mengapa Anda Harus Belajar Tentang Kelas Integer?

Ada banyak situasi di Java—seperti saat bekerja dengan kerangka koleksi (seperti List atau Map), menangani nilai null, atau menggunakan generics—di mana tipe primitif int tidak cocok. Dalam kasus-kasus ini, kelas Integer menjadi esensial, jadi memahami dasar-dasarnya penting.

Kelas Integer juga menyediakan banyak metode berguna untuk tugas seperti mengonversi antara string dan angka, perbandingan, dan operasi bitwise. Menguasai metode-metode ini memungkinkan Anda menulis kode yang lebih kuat dan mudah dibaca.

Artikel ini berfokus pada kelas Integer, menjelaskan perbedaannya dengan int, cara menggunakannya, dan kasus penggunaan praktis. Apakah Anda pemula Java atau memiliki pengalaman, Anda akan menemukan informasi berguna di sini—jadi lanjutkan membaca!

2. Apa Itu Kelas Integer?

Peran sebagai Kelas Wrapper

Kelas Integer Java adalah kelas wrapper yang memungkinkan tipe primitif int diperlakukan sebagai objek. Seperti namanya, wrapper “membungkus” sesuatu—dalam hal ini, ia mengemas nilai int mentah ke dalam “kotak” Integer sehingga dapat digunakan sebagai objek.

Misalnya, koleksi Java (seperti List dan Map) hanya dapat menangani objek. Karena tipe primitif seperti int tidak dapat digunakan secara langsung, Integer diperlukan sebagai gantinya.

List<Integer> numbers = new ArrayList<>();
numbers.add(10); // The int value 10 is automatically converted to Integer and stored

Dengan mengonversi (boxing) nilai int menjadi bentuk objek, Anda dapat bekerja secara mulus dengan banyak API dan kerangka kerja Java.

Autoboxing dan Unboxing

Sejak Java 5, fitur-fitur nyaman yang disebut “autoboxing” dan “unboxing” telah diperkenalkan.

  • Autoboxing : Nilai int secara otomatis dikonversi menjadi objek Integer
  • Unboxing : Objek Integer secara otomatis dikonversi menjadi nilai int
    Integer num = 100; // Autoboxing
    int result = num + 50; // Unboxing occurs for the calculation
    

Ini berarti pengembang tidak perlu menulis kode konversi eksplisit—Java menangani konversi secara otomatis, membuat kode Anda lebih sederhana dan mudah dibaca.

Namun, jika Anda mencoba unboxing nilai null, NullPointerException akan terjadi, jadi hati-hati.

Integer value = null;
int x = value; // This throws an exception

Signifikansi Integer

Kelas Integer bukan hanya pengganti untuk int. Sebagai objek, ia memiliki properti tertentu:

  • Anda dapat menetapkan null , yang memungkinkan Anda merepresentasikan keadaan “tidak disetel”
  • Ia dilengkapi dengan metode yang memungkinkan operasi fleksibel
  • Ia dapat digunakan dalam koleksi dan struktur berbasis objek lainnya

Singkatnya, ada banyak skenario dalam konteks berorientasi objek Java di mana Integer lebih tepat daripada int.

3. Field dan Konstanta Utama Kelas Integer

Kelas Integer Java mendefinisikan beberapa konstanta berguna dan field untuk mengambil informasi terkait angka. Menggunakan ini dapat meningkatkan keterbacaan dan kemudahan pemeliharaan kode Anda.

Mari kita bahas beberapa field yang paling umum digunakan.

MAX_VALUE dan MIN_VALUE

Integer.MAX_VALUE dan Integer.MIN_VALUE adalah konstanta yang merepresentasikan nilai maksimum dan nilai minimum yang dapat dipegang oleh tipe int.

. MAX_VALUE : 2.147.483.647 (2 pangkat 31 dikurangi 1)
MIN_VALUE : -2.147.483.648 (negatif 2 pangkat 31)

Ini sering digunakan untuk memeriksa rentang atau mencegah overflow, menjadikannya penting untuk pemrosesan numerik yang aman.

int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;

System.out.println("Max value: " + max); // 2147483647
System.out.println("Min value: " + min); // -2147483648

SIZE dan BYTES

SIZE dan BYTES adalah konstanta yang menunjukkan jumlah bit dan byte yang digunakan oleh tipe int.

  • Integer.SIZE : 32 (jumlah bit)
  • Integer.BYTES : 4 (jumlah byte)

Ini sering digunakan saat menangani data biner atau dalam skenario pemrograman sistem, seperti menghitung ukuran data atau untuk keperluan kriptografi.

System.out.println("Number of bits in int: " + Integer.SIZE);   // 32
System.out.println("Number of bytes in int: " + Integer.BYTES); // 4

Field TYPE

Integer.TYPE adalah field statis yang mengembalikan objek Class untuk tipe int. Ini kadang‑kadang digunakan untuk teknik pemrograman lanjutan seperti refleksi atau generik.

Class<?> clazz = Integer.TYPE;
System.out.println(clazz.getName()); // int

Meskipun tidak sering digunakan dalam pengembangan sehari‑hari, mengetahui hal ini berguna jika Anda tertarik pada internal Java atau pengembangan kerangka kerja.

Semua konstanta ini didefinisikan sebagai static final, artinya Anda dapat mengaksesnya langsung dari kelas Integer tanpa membuat instance. Mengetahui konstanta terkait tipe ini adalah langkah awal yang baik untuk mencegah kesalahan dan meningkatkan kinerja dalam Java.

4. Metode Utama Kelas Integer

Kelas Integer jauh lebih dari sekadar pembungkus untuk int. Ia menyediakan banyak metode praktis untuk konversi string, perbandingan numerik, operasi bitwise, dan lain‑lain—menjadikannya sangat berguna untuk pengembangan Java sehari‑hari. Di sini, kami akan memperkenalkan metode‑metode yang paling sering digunakan berdasarkan kategori.

Metode Konversi

parseInt()

parseInt() adalah metode statis yang mengonversi string menjadi nilai int. Metode ini terutama digunakan saat menangani masukan pengguna atau data dari file eksternal yang perlu diproses sebagai angka.

String str = "123";
int number = Integer.parseInt(str); // 123

* Jika string yang bukan angka diberikan, NumberFormatException akan dilempar, sehingga lebih aman menggunakan try‑catch.

valueOf()

valueOf() adalah metode yang mengonversi string atau nilai int menjadi objek Integer. Tidak seperti parseInt(), tipe kembalian adalah Integer, bukan int.

Integer num1 = Integer.valueOf("456");
Integer num2 = Integer.valueOf(789);

Integer.valueOf() menggunakan kembali objek yang di‑cache untuk nilai antara -128 dan 127, sehingga lebih efisien dibandingkan membuat instance baru dengan new.

Metode Tampilan dan Konversi

toString()

toString() adalah metode yang mengembalikan nilai numerik sebagai string. Metode ini umum digunakan untuk penggabungan string atau menampilkan nilai.

int number = 100;
String str = Integer.toString(number); // "100"

Anda juga dapat menggunakannya untuk mengonversi ke basis lain, seperti biner atau heksadesimal.

System.out.println(Integer.toBinaryString(10));  // "1010"
System.out.println(Integer.toHexString(255));    // "ff"

Metode Perbandingan

compareTo()

compareTo() adalah metode yang membandingkan dua objek Integer dan mengembalikan sebuah integer yang menunjukkan urutan relatif mereka.

Integer a = 10;
Integer b = 20;

int result = a.compareTo(b); // -1 (returns a negative value if a < b)

Metode ini sering digunakan bersama metode seperti Collections.sort.

equals()

equals() adalah metode yang memeriksa apakah dua nilai sama. Operator == membandingkan referensi, sehingga equals() disarankan untuk membandingkan nilai objek.

Integer x = 100;
Integer y = 100;
System.out.println(x.equals(y)); // true

Metode Operasi Bitwise

answer.Secara unik di antara kelas Java, kelas Integer menawarkan dukungan luas untuk operasi bitwise tingkat rendah.

bitCount()

Metode ini mengembalikan jumlah bit yang bernilai 1 dalam nilai int yang diberikan.

int count = Integer.bitCount(15); // 15 in binary is 1111 → 4 bits set to 1

highestOneBit()

Metode ini mengembalikan nilai dengan hanya satu bit tertinggi yang diset dari nilai int yang diberikan.

int highest = Integer.highestOneBit(10); // 10 (1010) → 8 (1000)

Sangat berguna untuk optimasi yang melibatkan operasi bitwise.

Other Handy Methods

  • Integer.reverse(int) : Membalik urutan bit
  • Integer.signum(int) : Mengembalikan tanda (positif: 1, negatif: -1, nol: 0)
  • Integer.hashCode() : Mengembalikan kode hash (penting saat menggunakan koleksi)

Angka digunakan di seluruh Java. Hanya dengan mengetahui metode-metode ini Anda dapat menulis kode yang elegan dan efisien. Khususnya, metode konversi, perbandingan, dan bitwise sering digunakan dalam praktik, jadi pastikan Anda menguasainya.

5. Memilih Antara int dan Integer

Di Java, ada dua tipe untuk merepresentasikan bilangan bulat: int dan Integer. Meskipun Anda dapat mengkonversi di antara keduanya, menggunakannya secara tidak tepat dapat menyebabkan masalah kinerja atau kesalahan yang tidak terduga. Mari tinjau karakteristiknya dan cara memilih yang tepat untuk setiap skenario.

Perbedaan dalam Hal Kinerja

int adalah tipe primitif, memiliki ukuran memori tetap (4 byte), dan sangat cepat untuk perhitungan. Integer, di sisi lain, adalah tipe objek, disimpan sebagai instance di heap, dan menyediakan metode serta fitur tambahan.

int a = 10;
Integer b = 10;

Meskipun Anda menetapkan nilai yang sama, penanganan internalnya berbeda. Untuk perhitungan intensif atau loop, menggunakan int jauh lebih cepat dan lebih efisien memori.

Contoh: Perbedaan Kinerja dalam Loop

long startTime = System.nanoTime();
int sum = 0;
for (int i = 0; i < 1000000; i++) {
    sum += i;
}
long endTime = System.nanoTime();
System.out.println("Time for int: " + (endTime - startTime) + " ns");

Melakukan hal yang sama dengan Integer menyebabkan overhead boxing dan unboxing, yang dapat membuatnya beberapa kali lebih lambat.

Perbedaan Nullability dan Penanganan Eksepsi

int tidak dapat diberikan null. Jadi tidak cocok ketika Anda perlu merepresentasikan “tidak ada nilai” atau “tidak diset”.

Integer value = null;
if (value == null) {
    System.out.println("Value is unset");
}

Dengan Integer, Anda dapat menangani null secara eksplisit, menjadikannya ideal untuk situasi seperti validasi formulir atau pengambilan data dari basis data di mana nilai mungkin tidak ada.

Namun, melakukan unboxing pada Integer yang null ke int akan melempar NullPointerException, jadi perlu berhati-hati.

Kompatibilitas dengan Koleksi

Koleksi Java (seperti List dan Map) hanya dapat menyimpan objek. Itulah mengapa Anda tidak dapat menggunakan int secara langsung; Anda memerlukan Integer sebagai gantinya.

List<Integer> numbers = new ArrayList<>();
numbers.add(100); // int → Integer via autoboxing

Juga, saat bekerja dengan generik, Anda tidak dapat menentukan tipe primitif sebagai argumen tipe, jadi Anda harus menggunakan Integer.

Ringkasan: Pedoman untuk Memilih

Use CaseRecommended TypeReason
Mainly numeric calculationsintFaster processing and better memory efficiency
Need to represent presence or absence of a valueIntegerCan handle null
Working with collections or genericsIntegerObject type required
Using numbers as Map keysIntegerint can’t be used

Intinya, ingat: “Gunakan int untuk kecepatan, Integer untuk fleksibilitas.”

6. Kesalahan Umum dan Cara Menanganinya

NullPointerException

Penyebab:

Karena Integer adalah tipe objek, ia dapat diberikan null, tetapi jika Anda mencoba melakukan unboxing pada Integer yang null ke int, akan terjadi NullPointerException.

Integer value = null;
int x = value; // Exception thrown here
Solusi:

Selalu periksa null sebelum melakukan unboxing.

if (value != null) {
    int x = value;
} else {
    int x = 0; // Assign a default value
}

Sebagai alternatif, Anda dapat menangani ini dengan aman menggunakan Optional (Java 8+):

int x = Optional.ofNullable(value).orElse(0);

NumberFormatException

Penyebab:

Pengecualian ini dilempar ketika Integer.parseInt() atau Integer.valueOf() digunakan untuk mengonversi string non-numerik.

String input = "abc";
int num = Integer.parseInt(input); // NumberFormatException
Solusi:

Periksa terlebih dahulu apakah input adalah angka, biasanya dengan menggunakan ekspresi reguler.

if (input.matches("-?\\d+")) {
    int num = Integer.parseInt(input);
} else {
    System.out.println("Not a numeric value");
}

Juga, gunakan try-catch untuk menangani pengecualian dan memastikan pemrosesan yang aman.

try {
    int num = Integer.parseInt(input);
} catch (NumberFormatException e) {
    System.out.println("Invalid number format: " + input);
}

Penyalahgunaan == dan equals()

Penyebab:

Saat membandingkan dua objek Integer dengan ==, Anda membandingkan referensinya, bukan nilainya. Jadi meskipun nilainya sama, false dapat dikembalikan jika objeknya berbeda.

Integer a = new Integer(128);
Integer b = new Integer(128);
System.out.println(a == b);       // false (different references)
System.out.println(a.equals(b)); // true (same value)

* Untuk nilai antara -128 dan 127, objek di‑cache, sehingga == dapat mengembalikan true. Namun, ini tergantung pada implementasi.

Solusi:

Selalu gunakan .equals() untuk membandingkan dua objek Integer.

if (a.equals(b)) {
    System.out.println("Values are equal");
}

Anda juga dapat membandingkan nilai primitif int mereka setelah unboxing.

if (a.intValue() == b.intValue()) {
    System.out.println("Equal as int values");
}

Mengabaikan Overflow

Penyebab:

int dan Integer hanya dapat menangani nilai 32‑bit (±2.147.483.647). Jika Anda melampaui rentang ini, mereka tidak akan berfungsi dengan benar.

int a = Integer.MAX_VALUE;
int b = a + 1;
System.out.println(b); // -2,147,483,648 (wraps around to negative)
Solusi:

Pertimbangkan untuk menggunakan long atau BigInteger jika diperlukan, dan selalu perhatikan batasannya.

Ringkasan

Meskipun Integer nyaman dan fleksibel, ia memiliki banyak peringatan terkait null, referensi, dan konversi tipe. Khususnya bagi pemula Java, penting untuk memahami mengapa pengecualian tertentu terjadi.

Jika Anda mengetahui jebakan umum ini sebelumnya, Anda dapat menghindari bug dan menulis kode yang lebih stabil.

7. Contoh Praktis: Bagaimana Kelas Integer Digunakan

Saat ini, Anda seharusnya memiliki pemahaman yang kuat tentang fitur, perbedaan, dan poin penting mengenai kelas Integer. Selanjutnya, mari lihat beberapa kasus penggunaan dunia nyata di mana Integer sering diterapkan.

Mengonversi Input Pengguna menjadi Angka

Dalam aplikasi web dan desktop, input pengguna biasanya diterima sebagai String. Namun, ketika menangani bidang seperti usia atau kuantitas, Anda sering perlu memprosesnya sebagai angka, dan Integer berguna untuk konversi ini.

String input = "25"; // User input as a string

try {
    Integer age = Integer.valueOf(input); // Convert String → Integer
    System.out.println("Age: " + age);
} catch (NumberFormatException e) {
    System.out.println("Invalid input");
}

Dengan memvalidasi bahwa input adalah angka yang tepat dan menangani kesalahan, Anda dapat mencapai pemrosesan input pengguna yang kuat.

Mengelola Nilai Konfigurasi dan Variabel Lingkungan

Umumnya membaca nilai sistem atau konfigurasi sebagai string dan kemudian mengonversinya menjadi integer. Misalnya, saat menggunakan System.getProperty(), Anda sering perlu mengurai hasilnya.

String maxConn = System.getProperty("app.maxConnections", "100");
int max = Integer.parseInt(maxConn);
System.out.println("Max connections: " + max);

Dalam kasus seperti itu, penting untuk menyediakan nilai default yang masuk akal dan memungkinkan perubahan konfigurasi yang fleksibel.

Bekerja dengan Angka dalam Koleksi

Ketika Anda ingin menangani angka dalam sebuah koleksi (seperti List), Anda harus menggunakan Integer alih‑alih int. Misalnya, Anda mungkin menyimpan sementara daftar ID yang dimasukkan oleh pengguna.

List<Integer> ids = new ArrayList<>();
ids.add(101);
ids.add(205);
ids.add(309);

for (Integer id : ids) {
    System.out.println("Processing ID: " + id);
}

Berkat autoboxing, konversi dari int ke Integer terjadi secara otomatis, sehingga Anda dapat menulis kode yang ringkas tanpa harus khawatir tentang konversi manual.

Manajemen Flag Menggunakan Operasi Bit

Kelas Integer kaya akan metode manipulasi bit, yang berguna untuk manajemen flag tingkat rendah dan transisi status.

int flags = 0;

// Set the 1st bit
flags |= 0b0001;

// Set the 2nd bit
flags |= 0b0010;

// Check if the 2nd bit is set
boolean isSet = (flags & 0b0010) != 0;

System.out.println("The 2nd bit is: " + (isSet ? "ON" : "OFF"));

Dan Anda dapat menggunakan Integer.toBinaryString(flags) untuk memvisualisasikan status flag:

System.out.println("Current flag state: " + Integer.toBinaryString(flags));

Bekerja dengan Basis Data

Saat menggunakan JDBC atau metode serupa untuk berinteraksi dengan basis data, menggunakan Integer (bukan int) untuk kolom numerik memungkinkan Anda menangani nilai null dengan aman.

ResultSet rs = stmt.executeQuery("SELECT age FROM users WHERE id = 1");

if (rs.next()) {
    Integer age = (Integer) rs.getObject("age");
    System.out.println(age != null ? "Age: " + age : "Age not set");
}

Karena tipe primitif int tidak dapat bernilai null, Integer adalah pilihan yang tepat di sini.

Ringkasan

Kelas Integer lebih dari sekadar pembungkus untuk int—ia memainkan peran kunci dalam penanganan data yang fleksibel dan memastikan keamanan dalam pengembangan dunia nyata. Kelas ini sangat berguna dalam kasus‑kasus berikut:

  • Mengonversi masukan pengguna atau pengaturan eksternal menjadi angka
  • Menangani data yang mungkin null
  • Menyimpan integer dalam koleksi
  • Mengelola status dengan operasi bit

Dengan menguasai Integer, Anda dapat menulis kode yang lebih dapat diperluas, dapat dipelihara, dan stabil.

8. Kesimpulan

Kelas Integer di Java bukan sekadar pengganti int—ia adalah kelas penting yang sangat terkait dengan sifat berorientasi objek Java. Pada artikel ini, kami menjelaskan poin‑poin berikut dengan cara yang mudah dipahami pemula, sekaligus mencakup aspek praktis:

Apa saja keunggulan kelas Integer?

  • Karena dapat diperlakukan sebagai objek, Anda dapat bekerja dengan nilai null dan menggunakannya dalam koleksi
  • Ia dilengkapi dengan banyak metode yang nyaman (konversi string, perbandingan, operasi bit, dan lain‑lain)
  • Berfungsi baik dengan System.getProperty() dan operasi basis data, memungkinkan desain yang fleksibel
  • Caching objek dan autoboxing membuat kode menjadi lebih sederhana dan ringkas

Inilah keunggulan yang tidak dapat Anda dapatkan dengan tipe primitif int.

Namun ada juga peringatan penting

  • Membongkar (unboxing) sebuah Integer yang null akan menghasilkan NullPointerException
  • Menggunakan operator == mungkin tidak membandingkan nilai sebagaimana yang Anda harapkan
  • int jauh lebih baik untuk pengolahan angka berskala besar dalam hal kinerja

Tidak memahami poin‑poin ini dapat menyebabkan bug tak terduga atau masalah kinerja.

Memilih tipe yang tepat adalah kunci

Use CaseRecommended TypeReason
When fast numeric processing is requiredintSuperior memory efficiency and calculation speed
When data may be nullIntegerSupports nullability and can be handled safely
When used with collections or genericsIntegerBecause an object type is required
When using numbers as Map keysIntegerint cannot be used

Secara ringkas, int dan Integer bukan sekadar tipe yang berbeda, melainkan harus dipilih secara tepat berdasarkan tujuan desain dan kasus penggunaan Anda.

Pemikiran Akhir

Memahami Integer merupakan dasar tidak hanya untuk menangani tipe data di Java, tetapi juga untuk mengembangkan keterampilan pemrograman yang lebih mendalam dalam desain berorientasi objek, penanganan pengecualian, dan optimasi kinerja.

Karena tipe integer sangat umum digunakan, memperoleh pemahaman yang mendalam sejak awal akan menjadi aset besar dalam perjalanan pengembangan Java Anda di masa depan.

Pertanyaan yang Sering Diajukan (FAQ)

Q1. Apa perbedaan antara int dan Integer?

A. int adalah tipe primitif Java yang digunakan untuk penanganan nilai integer yang efisien dan cepat. Integer adalah kelas wrapper yang memungkinkan Anda memperlakukan int sebagai objek, memungkinkan Anda bekerja dengan nilai null dan menggunakan berbagai metode. Misalnya, saat menyimpan nilai dalam koleksi atau membedakan antara nilai yang telah disetel dan belum disetel, Integer lebih cocok.

Q2. Apa perbedaan antara parseInt() dan valueOf()?

A. Keduanya mengonversi string menjadi angka, tetapi tipe yang dikembalikan berbeda:

  • parseInt(String s) → mengembalikan int (tipe primitif)
  • valueOf(String s) → mengembalikan Integer (tipe objek)

Pilih berdasarkan kebutuhan Anda. valueOf() lebih berguna jika Anda membutuhkan objek atau untuk menangani nilai null.

Q3. Mengapa Anda tidak boleh menggunakan == untuk membandingkan objek Integer?

A. Operator == membandingkan referensi objek, bukan nilai itu sendiri. Bahkan jika nilainya sama, Anda mungkin mendapatkan false jika mereka adalah instance yang berbeda. Untuk nilai 128 atau lebih, caching objek tidak berlaku, sehingga hasil yang tidak terduga mungkin terjadi. Selalu gunakan .equals() untuk perbandingan nilai.

Integer a = 128;
Integer b = 128;
System.out.println(a == b);       // false (different references)
System.out.println(a.equals(b)); // true (same value)

Q4. Apa yang terjadi jika Anda menetapkan null ke Integer?

A. Karena Integer adalah objek, Anda dapat menetapkan null. Namun, jika Anda mengonversi (unbox) ke int saat null, NullPointerException akan terjadi.

Integer val = null;
int num = val; // Exception thrown here

Pastikan untuk memeriksa null atau gunakan Optional untuk kode yang lebih aman.

Q5. Bagaimana saya bisa menemukan nilai maksimum dan minimum dari Integer?

A. Di Java, Anda dapat menggunakan Integer.MAX_VALUE dan Integer.MIN_VALUE untuk dengan mudah mendapatkan batas-batas ini.

System.out.println(Integer.MAX_VALUE); // 2147483647
System.out.println(Integer.MIN_VALUE); // -2147483648

Ini berguna untuk pemeriksaan rentang dan perlindungan overflow.

Q6. Mengapa Anda tidak bisa menggunakan int dalam koleksi?

A. Koleksi Java (seperti List dan Map) hanya menangani objek, bukan tipe primitif. Itulah mengapa Anda perlu menggunakan Integer sebagai gantinya.

List<Integer> list = new ArrayList<>();
list.add(123); // int is automatically converted to Integer

Q7. Mana yang lebih baik untuk performa, int atau Integer?

A. Untuk perhitungan kecepatan tinggi atau penanganan volume besar angka dalam loop, int jauh lebih cepat dan efisien memori. Integer lebih nyaman dan fleksibel, tetapi objek ekstra dan boxing dapat membuatnya kurang cocok untuk beban kerja berat.