Rumah >Java >javaTutorial >Bagaimanakah Auto Boxing dan Unboxing Benar-benar Berfungsi di Java?
Auto Boxing dan Unboxing di Java: Menyingkap Mekanisme Tersembunyi
Auto boxing dan unboxing, diperkenalkan dalam Java JDK 5.0, memudahkan penukaran antara jenis primitif dan kelas pembalut yang sepadan. Walau bagaimanapun, cara kerja sebenar konsep ini boleh membingungkan.
Auto Boxing: The Multifaceted Wrapper
Pada mulanya, ia mungkin kelihatan seperti auto boxing bergantung semata-mata pada pembina yang dilaksanakan dalam kelas pembalut. Walau bagaimanapun, menyelidiki kod bait untuk Integer.class mendedahkan cerita yang berbeza.
Integer n = 42;
Mengkompil kepada:
0: bipush 42 2: invokestatic #16 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 5: astore_1
Kod bait menggunakan kaedah valueOf() dan bukannya pembina. Pendekatan ini menawarkan kelebihan seperti caching, mengelakkan penciptaan objek berlebihan.
Auto Nyah Kotak: Mendapatkan Kembali Intipati Primitif
Begitu juga, nyahkotak automatik melibatkan mendapatkan semula nilai primitif yang dibalut dalam objek melalui kaedah intValue() untuk integer, atau kaedah analog untuk jenis pembalut lain.
int n = Integer.valueOf(42);
Disusun kepada:
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
Kesimpulan
Pada dasarnya, tinju automatik dan nyahboxing beroperasi dengan menggunakan yang sesuai kaedah statik valueOf() atau instance intValue() pada kelas pembalut. Mekanisme ini menyediakan penukaran yang lancar antara perwakilan primitif dan berasaskan objek, meningkatkan kebolehbacaan dan kecekapan kod.
Atas ialah kandungan terperinci Bagaimanakah Auto Boxing dan Unboxing Benar-benar Berfungsi di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!