Apa yang dipanggil tinju sebenarnya menukar jenis asas kepada kelas pakej, seperti bertukar dua kali ganda. menjadi Double. Tinju dibahagikan kepada tinju manual dan tinju automatik (Tinju Auto). Sebelum JDK 1.5, tinju manual perlu dilakukan; selepas JDK 1.5, tinju automatik boleh dilakukan tanpa operasi manual, yang memudahkan pembangunan dan memberikan kemudahan.
Kes berikut ialah proses pelaksanaan tinju manual dan tinju automatik. Sebelum dan selepas JDK 1.5, tinju boleh dibahagikan kepada tinju manual dan tinju automatik, jadi semua orang harus memberi perhatian kepadanya.
public class BoxTest { public static void main(String[] args) { //JDK 1.5之前的拆装箱过程--手动拆装箱 byte b = 10; //手动装箱 Byte b1 = Byte.valueOf(b); System.out.println("手动装箱后的结果,b1="+b1); //手动装箱的另一种形式 int m = 100; Integer obj = new Integer(m); //手动拆箱的另一种形式 int n = obj.intValue(); System.out.println("n = " + n); //JDK 1.5之后的拆装箱过程--自动拆装箱 int i = 10; //自动装箱 Integer i001 = i; System.out.println("自动装箱后的结果,i001="+i001); } }
Apa yang dipanggil unboxing (Unboxing) sebenarnya menukar jenis pembungkusan kepada jenis asas, seperti menukar Double menjadi double . Begitu juga, unboxing juga dibahagikan kepada unboxing manual dan unboxing automatik (Auto Boxing Instalasi manual kelas pembungkusan ialah unboxing manual). Sebelum JDK 1.5, unboxing mesti dilakukan secara manual Selepas JDK 1.5, unboxing boleh dilakukan secara automatik.
Kes berikut ialah proses pelaksanaan unboxing manual dan unboxing automatik. Sebelum dan selepas JDK 1.5, unboxing boleh dibahagikan kepada unboxing manual dan unboxing automatik, jadi semua orang harus memberi perhatian kepadanya.
public class BoxTest { public static void main(String[] args) { //JDK 1.5之前的拆装箱过程--手动拆装箱 byte b = 10; //手动装箱 Byte b1 = Byte.valueOf(b); System.out.println("手动装箱后的结果,b1="+b1); //手动拆箱 byte b2 = b1.byteValue(); System.out.println("手动拆箱后的结果="+b2); //JDK 1.5之后的拆装箱过程--自动拆装箱 int i = 10; //自动装箱 Integer i001 = i; System.out.println("自动装箱后的结果,i001="+i001); //自动拆箱 int i002 = i001; System.out.println("自动拆箱后的结果,i002="+i002); } }
Kita harus ambil perhatian bahawa tinju automatik dan nyahbox automatik hanya berlaku semasa fasa penyusunan, dan tujuannya adalah untuk mengurangkan penulisan kod. Dari sudut prestasi, proses tinju dan unboxing akan menjejaskan kecekapan pelaksanaan kod, kerana kod kelas yang disusun dengan tegas membezakan antara jenis asas dan jenis rujukan, jadi tinju dan unboxing semasa fasa penyusunan masih perlu dilakukan selepas penyusunan Kembali kepada asal. Selain itu, semasa nyahkotak automatik, jika tugasan tidak betul, NullPointerException mungkin berlaku, seperti yang ditunjukkan di bawah:
Integer n = null; //这里就会产生NPE空指针异常 int m = n;
Atas ialah kandungan terperinci Bagaimana cara melakukan tinju dan menyahkotak kelas pembungkus di Jawa dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!