Heim > Java > javaLernprogramm > Hauptteil

Wie führt man das Ein- und Auspacken von Wrapper-Klassen in Java richtig durch?

PHPz
Freigeben: 2023-05-10 08:43:27
nach vorne
1623 Leute haben es durchsucht

    1. Boxen

    1. Konzept

    Das sogenannte Boxen (Boxen) ist eigentlich die Umwandlung von Grundtypen in Verpackungsklassen, wie zum Beispiel das Verwandeln von Double in Double. Das Boxen wird in manuelles Boxen und automatisches Boxen (Auto-Boxen) unterteilt. Wenn wir eine Verpackungsklasse manuell instanziieren, handelt es sich um manuelles Boxen. Vor JDK 1.5 musste manuelles Boxen durchgeführt werden; nach JDK 1.5 kann automatisches Boxen ohne manuelle Vorgänge durchgeführt werden, was die Entwicklung vereinfacht und Komfort bietet.

    2. Fall

    Der folgende Fall ist der Implementierungsprozess des manuellen Boxens und des automatischen Boxens. Vor und nach JDK 1.5 kann das Boxen in manuelles Boxen und automatisches Boxen unterteilt werden, daher sollte jeder darauf achten.

    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);
        }
    }
    Nach dem Login kopieren

    2. Unboxing

    Das sogenannte Unboxing (Unboxing) ist eigentlich die Umwandlung des Verpackungstyps in einen Grundtyp, beispielsweise die Umwandlung von Double in Double. In ähnlicher Weise wird das Unboxing auch in manuelles Unboxing und automatisches Unboxing (Auto Boxing) unterteilt. Die manuelle Instanziierung der Verpackungsklasse ist manuelles Unboxing. Vor JDK 1.5 muss das Auspacken manuell erfolgen. Nach JDK 1.5 kann das Auspacken automatisch erfolgen.

    2. Fall

    Der folgende Fall ist der Implementierungsprozess des manuellen Unboxings und des automatischen Unboxings. Vor und nach JDK 1.5 kann das Unboxing in manuelles Unboxing und automatisches Unboxing unterteilt werden, daher sollte jeder darauf achten.

    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);
        }
    }
    Nach dem Login kopieren

    3. Zusammenfassung

    Wir sollten beachten, dass das automatische Boxen und Entpacken nur während der Kompilierungsphase erfolgt und ihr Zweck darin besteht, das Schreiben von Code zu reduzieren. Unter Leistungsgesichtspunkten wirkt sich der Prozess des Ein- und Auspackens auf die Ausführungseffizienz des Codes aus, da der kompilierte Klassencode strikt zwischen Basistypen und Referenztypen unterscheidet, sodass das Ein- und Auspacken während der Kompilierungsphase noch durchgeführt werden muss nach der Kompilierung. Zurück zum Original. Darüber hinaus kann es beim automatischen Unboxing bei falscher Zuweisung zu einer NullPointerException kommen, wie unten gezeigt:

    Integer n = null;
    //这里就会产生NPE空指针异常
    int m = n;
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonWie führt man das Ein- und Auspacken von Wrapper-Klassen in Java richtig durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage