Maison > Java > javaDidacticiel > le corps du texte

Comment effectuer correctement le boxing et le unboxing des classes wrapper en Java ?

PHPz
Libérer: 2023-05-10 08:43:27
avant
1622 Les gens l'ont consulté

    1. Boxe

    1. Concept

    La soi-disant boxe (Boxing) consiste en fait à convertir des types de base en classes d'emballage, par exemple transformer un double en Double. La boxe est divisée en boxe manuelle et boxe automatique (Auto Boxing). Si nous instancions manuellement une classe d'empaquetage, il s'agit de boxe manuelle. Avant le JDK 1.5, le boxing manuel devait être effectué ; après le JDK 1.5, le boxing automatique peut être effectué sans opérations manuelles, ce qui simplifie le développement et est plus pratique.

    2. Cas

    Le cas suivant est le processus de mise en œuvre de la boxe manuelle et de la boxe automatique. Avant et après JDK 1.5, la boxe peut être divisée en boxe manuelle et boxe automatique, donc tout le monde devrait y prêter attention.

    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);
        }
    }
    Copier après la connexion

    2. Unboxing

    1. Concept

    Le soi-disant unboxing (Unboxing) consiste en fait à convertir le type d'emballage en un type de base, comme transformer Double en double. De même, le déballage est également divisé en déballage manuel et déballage automatique (Auto Boxing). L'instanciation manuelle de la classe d'emballage est le déballage manuel. Avant JDK 1.5, le déballage doit être effectué manuellement, mais après JDK 1.5, le déballage peut être effectué automatiquement.

    2. Cas

    Le cas suivant est le processus de mise en œuvre du déballage manuel et du déballage automatique. Avant et après JDK 1.5, le déballage peut être divisé en déballage manuel et déballage automatique, donc tout le monde devrait y prêter attention.

    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);
        }
    }
    Copier après la connexion

    3. Résumé

    Il convient de noter que le boxing et le déballage automatiques ne se produisent que pendant la phase de compilation et ont pour but de réduire l'écriture de code. Du point de vue des performances, le processus de boxing et de unboxing affectera l'efficacité d'exécution du code, car le code de classe compilé fait une distinction stricte entre les types de base et les types de référence, de sorte que le boxing et le unboxing pendant la phase de compilation doivent toujours être effectués. après compilation. Retour à l'original. De plus, lors du déballage automatique, si l'affectation est incorrecte, une NullPointerException peut se produire, comme indiqué ci-dessous :

    Integer n = null;
    //这里就会产生NPE空指针异常
    int m = n;
    Copier après la connexion

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal