Rumah > Java > javaTutorial > Bagaimanakah Auto Boxing/Unboxing Berfungsi di Java?

Bagaimanakah Auto Boxing/Unboxing Berfungsi di Java?

Barbara Streisand
Lepaskan: 2024-11-14 12:37:02
asal
441 orang telah melayarinya

How Does Auto Boxing/Unboxing Work in Java?

Auto Boxing/Unboxing in Java

Automatic boxing and unboxing in Java memudahkan penukaran jenis antara jenis data primitif dan kelas pembalut yang sepadan. Diperkenalkan dalam JDK 5.0, ciri ini menyediakan penyepaduan yang lancar bagi kedua-dua perwakilan ini.

Tinju Auto

Apabila memberikan nilai primitif kepada pembolehubah kelas pembalut, tinju automatik berlaku . Bertentangan dengan andaian bahawa pembina kelas pembalut digunakan, kaedah statik valueOf() digunakan sebaliknya. Ini jelas dalam kod bait yang dijana untuk kod berikut:

Integer n = 42;
Salin selepas log masuk
0: bipush        42
2: invokestatic  #16                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
5: astore_1      
Salin selepas log masuk

Kaedah valueOf() menyimpan cache objek yang dicipta, memastikan kecekapan sumber.

Auto Nyah Kotak

Sebaliknya, apabila mengekstrak nilai primitif daripada pembolehubah kelas pembalut, auto unboxing berlaku. Proses ini menggunakan kaedah intValue() untuk integer (dan kaedah analog untuk jenis lain), seperti yang digambarkan dalam bytecode untuk:

int n = Integer.valueOf(42);
Salin selepas log masuk
0: bipush        42
2: invokestatic  #16                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
5: invokevirtual #22                 // Method java/lang/Integer.intValue:()I
8: istore_1      
Salin selepas log masuk

Kaedah ini hanya mengembalikan nilai primitif yang disimpan dalam objek pembalut .

Ringkasnya, auto boxing/unboxing melibatkan penggunaan kaedah statik valueOf() dan intValue() (atau serupa) untuk menukar secara telus antara perwakilan kelas primitif dan pembalut. Ini memudahkan kod dan meningkatkan prestasi dengan menggunakan mekanisme caching.

Atas ialah kandungan terperinci Bagaimanakah Auto Boxing/Unboxing Berfungsi di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan