Apa itu AutoBoxing dan unboxing di Java?



Artikel ini akan memberi anda pendekatan menyeluruh terhadap Autoboxing di Java bersama dengan beberapa contoh untuk pemahaman yang lebih baik.

Selalunya kita menggunakan jenis data primitif semasa menulis program dalam bahasa apa pun. Tetapi ada situasi di mana jenis data primitif kurang dalam bidang dan adalah salah satu daripadanya. Untuk mengatasi kekurangan dalam jenis data Primitif, kami menggunakan pembungkus . Prosedur ini dipanggil Autoboxing. Kami akan membincangkan Autoboxing terperinci di Java melalui soket di bawah:

Mari kita mulakan.





Apa itu Tinju dan Autoboxing di Java?

Tinju dan Autoboksing sering digunakan untuk merujuk kepada konsep yang sama. Tetapi pada hakikatnya, mereka tidak sama persis. Mari kita bincangkan mengenai konsep tinju. Apa itu tinju? Sepertinya kita menyimpan sesuatu di dalam kotak bukan? Ya, apabila kita mengatakan bahawa kita sedang membungkus atau membungkus jenis data primitif, ini bermaksud kita membungkusnya untuk membentuk objek. Masih keliru? Mari kita ambil contoh.

int FirstNumber = 1

Pembolehubah ‘FirstNumber’ adalah jenis int yang merupakan . Sekarang, bagaimana jika saya mahu menukar pemboleh ubah ‘FirstNumber’ menjadi objek? Java menyediakan cara untuk melakukannya.



Integer SecondNumber = bilangan bulat baru (2)

Perhatikan bahawa 'SecondNumber' bukan jenis int tetapi ia adalah objek jenis Integer. Proses menukar jenis data primitif menjadi objek disebut tinju. Anda mungkin bertanya bagaimana mungkin? Mari fikirkan apakah kaedah termudah dalam menyelesaikan tugas ini. Kita boleh membuat a kelas mengandungi atribut tunggal jenis int, konstruktor yang mengambil nilai jenis int dan memberikannya ke atribut kelas kami, dan beberapa kaedah untuk memanipulasi nilai int ini. Untuk mengetahui lebih lanjut mengenainya, rujuk ini dokumen .

Kami melihat bagaimana jenis int dapat ditukar menjadi Java. Adakah cara untuk menukar jenis data primitif lain menjadi objek? Ya, Java mempunyai masing-masing kelas pembungkus untuk jenis data primitif yang berbeza. Kami akan melihatnya di bahagian seterusnya dalam catatan ini.

Autoboxing

Pada ketika ini, kita tahu apa itu tinju. Sekarang mari kita fahami apa itu Autoboxing. apabila proses tinju dilakukan oleh penyusun tanpa disebut secara eksplisit, disebut autoboxing.



Mari kita fahami ini dengan contoh:

import java.util.ArrayList import java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () untuk (int i = 0 i<10 i++) Mylist.add(i) } }

Seperti yang telah kita bincangkan sebelumnya hanya menerima objek dan jenis data primitif tidak berfungsi. Dalam program di atas, kami tidak menukar jenis ke objek jenis Integer yang masih dijalankan oleh program tanpa sebarang kesalahan. Bagaimana? Jawapan untuk soalan ini adalah, penyusun secara automatik melakukan proses tinju sebelum menambahkan nilai ke 'Mylist' sehingga nama Autoboxing.

java urutan fibonacci untuk gelung
Mylist.add (Integer.valueOf (i))

Baris kod di atas ditambahkan dalam program kami oleh penyusun.

Catatan- Pada baris di atas nama kelas kod 'Integer' disebut sebelum kaedah nilaiOf () kerana nilaiOf () adalah kaedah statik. Untuk lebih banyak contoh rujuk dokumen .

Membuka kotak dan Autounbox

Kami melihat bagaimana dari jenis data primitif ditukar menjadi objek. Tetapi ini hanya separuh daripada ceritanya. Separuh cerita yang lain adalah menukar objek kelas pembungkus jenis ke jenis data primitifnya disebut membuka kotak masuk .

Sebagai contoh-

Integer FirstNumber = baru Integer (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Keluaran- 1

Peti Autoun- Apabila proses unboxing yang dilakukan oleh pengkompil tanpa menyebut secara eksplisit disebut Autounboxing.

Sebagai contoh-

Nombor Integer = bilangan bulat baru (20) int num = Nombor

Kod di atas adalah contoh Autounboxing. Di bahagian seterusnya, kita akan belajar mengenai kelas pembungkus.

Kelas Pembungkus

Kami menukar dalam jenis pemboleh ubah intl Integer jenis objek. Kelas integer ini adalah kelas pembungkus. Di Jawa, kelas pembungkus tersedia untuk masing-masing . Kelas pembungkus ini membantu kami dalam menukar pemboleh ubah dari jenis primitif ke objek jenis kelas pembungkus masing-masing. Kaedah kelas pembungkus berguna dalam memanipulasi nilai.

Jadual di bawah memberitahu kami mengenai jenis data primitif dan kelas pembungkus masing-masing.

Jenis Primitif Kelas Pembungkus

boolean

Boolean

selamat tinggal

Bait

char

Perwatakan

terapung

salinan dalam vs salinan cetek java

Terapung

int

Bilangan bulat

lama

Lama

pendek

Pendek

berganda

Berganda

Perhatikan penggunaan huruf besar di kelas Wrapper.

Oleh itu, kita telah mengakhiri artikel ini mengenai ‘Autoboxing in Java’. Sekiranya anda ingin mengetahui lebih lanjut, lihat di oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen blog ini 'autoboxing in Java' dan kami akan menghubungi anda secepat mungkin.