Maison >Java >Javacommencer >Explication détaillée de la classe d'emballage Java
1. Définition :
(apprentissage recommandé : programme d'entrée Java)
Java est Un langage de programmation orienté objet, mais les huit types de données de base en Java ne sont pas orientés objet. Afin de faciliter l'utilisation et de résoudre cette lacune, une classe correspondante est conçue pour représenter chaque type de données de base lors de la conception de la classe, de sorte que. les classes correspondant aux huit types de données de base sont collectivement appelées classes wrapper, et les classes wrapper se trouvent dans le package java.lang.
2. Objectif des classes d'empaquetage
Pour faciliter l'utilisation, Java encapsule 8 types de données de base : En plus des classes Integer et Character, les six autres La classe Le nom de la classe doit être cohérent avec le type de données de base, à condition que la première lettre du nom de la classe soit en majuscule. > Boolean long—> Long
int —> Integer
float
double—> , use Il en existe principalement deux types :
a. Ils existent sous forme de classes correspondant aux types de données de base pour faciliter les opérations impliquant des objets.
b. Contient les attributs pertinents de chaque type de données de base, tels que la valeur maximale, la valeur minimale, etc., ainsi que les méthodes de fonctionnement associées.
3. Utilisation réelle des classes d'empaquetage (en prenant int et integer comme exemples)1 Conversion entre les classes int et integer
en cours réel. conversion, utilisez le constructeur de la classe Integer et la méthode intValue à l'intérieur de la classe Integer pour réaliser une conversion mutuelle entre ces types.
// int n=5; Integer n1=new Integer(n); System.out.println("int类型转换为integer类:"+n1); // Integer i=new Integer(50); int i1 = i.intValue(); System.out.println("integer类转换为int类型:"+i1);
2. Méthodes couramment utilisées dans la classe Integer
Les principales méthodes de la classe Integer sont : la méthode parseInt et la méthode toString.
//parseInt方法: 数字字符串类型转成int类型 String ss="123"; int ii = Integer.parseInt(ss); System.out.println("字符类型转成整型:"+ii); //toString方法:int类型转成数字字符串类型 int ii2=123; String ss2 = Integer.toString(ii2); System.out.println("int类型转成数字字符串类型:"+ss);
JDK a introduit la syntaxe de déballage automatique depuis la version 1.5, c'est-à-dire que lors de la conversion des types de données de base et des classes d'empaquetage correspondantes, le système le fera automatiquement, ce qui facilitera grandement l'écriture de code pour les programmeurs. (Tutoriel vidéo recommandé :
Tutoriel vidéo Java)
Autoboxing : encapsulez les types de données de base dans des types d'objets pour vous conformer à la pensée orientée objet de Java.
Déballage automatique : reconvertissez les objets en types de données de base.
//5是基本数据类型,通过自动装箱变成对象类型。 //编译器执行了Integer iii = Integer.valueOf(5) Integer iii=5; //自动拆箱,实际上执行了 int iii2 = iii.intValue() int iii2=iii; System.out.println(iii2);
Explication : Integer iii=5 ; équivalent au compilateur exécutant l'opération Integer iii = Integer.valueOf(5).
Cette méthode renvoie un objet Integer, mais avant de revenir, elle est considérée comme un jugement pour déterminer si la valeur actuelle de i est dans la différence [-128,127] et si cet objet existe dans IntegerCache If. il existe, puis renvoie directement la référence, sinon, crée un nouvel objet.
3. Valeurs de cache des classes d'emballage Plage de valeurs de cache de chaque classe d'emballage :
boolean:true和false byte:-128~127 char:0~127 short:-128~127 int:-128~127 long:-128~127Remarque spéciale : il n'y a pas de cache pour float et double .
Lorsque vous boxez les valeurs ci-dessus (telles que : Caractère c1=127 ; ou Integer i= Integer.valueOf(1); Cela ne fonctionnera pas : Integer i2=new Integer(1); Puisqu'il s'agit d'un nouvel objet.), il ne crée pas de nouvel objet mais utilise l'objet dans le cache. S'il dépasse la portée, un nouvel objet doit être créé.
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!