Types de données de base Java
Une variable est utilisée pour allouer de la mémoire afin de stocker des valeurs. Autrement dit, lorsque vous créez une variable, vous devez allouer de l'espace en mémoire.
Le système de gestion de la mémoire alloue un espace de stockage à la variable en fonction de son type, et l'espace alloué ne peut être utilisé que pour stocker des données de ce type.

Par conséquent, en définissant des variables de différents types, vous pouvez stocker des entiers, des nombres décimaux ou des caractères en mémoire.
Les deux principaux types de données de Java :
- Types de données intégrés
- Types de données de référence
Types de données intégrés
Le langage Java fournit huit types primitifs. Six types numériques (quatre types entiers, deux types à virgule flottante), un type caractère et un type booléen.
byte:
- Le type de données byte est un entier signé de 8 bits représenté en complément à deux ;
- La valeur minimale est-128(-2^7);
- La valeur maximale est127(2^7-1);
- La valeur par défaut est0;
- Le type byte est utilisé dans les grands tableaux pour économiser de l'espace, principalement en remplacement des entiers, car une variable byte n'occupe qu'un quart de l'espace d'un type int ;
- Exemple : byte a = 100, byte b = -50.
short :
- Le type de données short est un entier signé de 16 bits représenté en complément à deux ;
- La valeur minimale est-32768(-2^15);
- La valeur maximale est32767(2^15 - 1);
- Le type de données short peut également économiser de l'espace comme le type byte. Une variable short occupe la moitié de l'espace occupé par une variable int ;
- La valeur par défaut est0;
- Exemple : short s = 1000, short r = -20000.
int :
- Le type de données int est un entier signé de 32 bits représenté en complément à deux ;
- La valeur minimale est-2,147,483,648(-2^31);
- La valeur maximale est2,147,483,647(2^31 - 1);
- En général, les variables entières ont par défaut le type int ;
- La valeur par défaut est0 ;
- Exemple : int a = 100000, int b = -200000.
long :
- Le type de données long est un entier signé de 64 bits représenté en complément à deux ;
- La valeur minimale est-9,223,372,036,854,775,808(-2^63);
- La valeur maximale est9,223,372,036,854,775,807(2^63 -1);
- Ce type est principalement utilisé dans les systèmes qui nécessitent des entiers relativement grands ;
- La valeur par défaut est0L;
- Exemple :long a = 100000L,long b = -200000L。
"L" est théoriquement insensible à la casse, mais s'il est écrit "l", il est facile de le confondre avec le nombre "1" et difficile à distinguer. Il est donc préférable d'utiliser une majuscule.
float :
- Le type de données float est un nombre à virgule flottante simple précision de 32 bits conforme à la norme IEEE 754 ;
- float peut économiser de l'espace mémoire lors du stockage de grands tableaux de nombres à virgule flottante ;
- La valeur par défaut est0.0f;
- Les nombres à virgule flottante ne peuvent pas être utilisés pour représenter des valeurs précises, comme la monnaie ;
- Exemple : float f1 = 234.5f.
double :
- Le type de données double est un nombre à virgule flottante double précision de 64 bits conforme à la norme IEEE 754 ;
- Le type par défaut des nombres à virgule flottante est double ;
- Le type double ne peut pas non plus représenter des valeurs précises, comme la monnaie ;
- La valeur par défaut est0.0d;
-
Exemple :
double d1 = 7D ; double d2 = 7.; double d3 = 8.0; double d4 = 8.D; double d5 = 12.9867;
7 est un littéral int, tandis que 7D, 7. et 8.0 sont des littéraux double.
boolean :
- Le type de données boolean représente un bit d'information ;
- Il n'a que deux valeurs : true et false ;
- Ce type n'est utilisé que comme un indicateur pour enregistrer des conditions true/false ;
- La valeur par défaut estfalse;
- Exemple : boolean one = true.
char:
- Le type char est un seul caractère Unicode de 16 bits ;
- La valeur minimale est\u0000(l'équivalent décimal est 0);
- La valeur maximale est\uffff(i.e., 65535);
- Le type de données char peut stocker n'importe quel caractère ;
- Exemple : char letter = 'A';.
Exemple
Pour les plages de valeurs des types primitifs numériques, nous n'avons pas besoin de les mémoriser de force, car leurs valeurs sont déjà définies comme des constantes dans les classes wrapper correspondantes. Voir l'exemple ci-dessous :
Exemple
Exécuter l'exemple »
La compilation du code ci-dessus produit la sortie suivante :
基本类型:byte 二进制位数:8 包装类:java.lang.Byte 最小值:Byte.MIN_VALUE=-128 最大值:Byte.MAX_VALUE=127 基本类型:short 二进制位数:16 包装类:java.lang.Short 最小值:Short.MIN_VALUE=-32768 最大值:Short.MAX_VALUE=32767 基本类型:int 二进制位数:32 包装类:java.lang.Integer 最小值:Integer.MIN_VALUE=-2147483648 最大值:Integer.MAX_VALUE=2147483647 基本类型:long 二进制位数:64 包装类:java.lang.Long 最小值:Long.MIN_VALUE=-9223372036854775808 最大值:Long.MAX_VALUE=9223372036854775807 基本类型:float 二进制位数:32 包装类:java.lang.Float 最小值:Float.MIN_VALUE=1.4E-45 最大值:Float.MAX_VALUE=3.4028235E38 基本类型:double 二进制位数:64 包装类:java.lang.Double 最小值:Double.MIN_VALUE=4.9E-324 最大值:Double.MAX_VALUE=1.7976931348623157E308 基本类型:char 二进制位数:16 包装类:java.lang.Character 最小值:Character.MIN_VALUE=0 最大值:Character.MAX_VALUE=65535
Les valeurs minimale et maximale de Float et Double sont toutes deux affichées en notation scientifique. Le "E+nombre" final indique que le nombre avant E doit être multiplié par 10 à la puissance de ce nombre. Par exemple, 3.14E3 est 3.14 × 103=3140, et 3.14E-3 est 3.14 x 10-3 =0.00314.
En fait, il existe un autre type primitif en Java, void, qui possède également une classe enveloppe correspondante java.lang.Void, mais nous ne pouvons pas les manipuler directement.
Valeurs par défaut des types
Le tableau suivant répertorie les valeurs par défaut de chaque type Java :
| Type de données | Valeur par défaut |
|---|---|
| int | 0 |
| long | 0L |
| short | 0 |
| char | '\u0000' |
| octet | 0 |
| float | 0.0f |
| double | 0.0d |
| booléen | false |
| Types de référence (classes, interfaces, tableaux) | null |
Notes :
int,short,long,byteLa valeur par défaut est 0.charLa valeur par défaut est\u0000(caractère nul).floatLa valeur par défaut est0.0f。doubleLa valeur par défaut est0.0d。booleanLa valeur par défaut estfalse。- La valeur par défaut pour les types de référence (classes, interfaces, tableaux) est
null。
Exemple
Les sorties de l'exemple :
Bool :false Byte :0 Character: Double :0.0 Float :0.0 Integer :0 Long :0 Short :0 String :null
Types de référence
- En Java, les variables de type référence sont très similaires aux pointeurs en C/C++. Un type référence pointe vers un objet, et la variable qui pointe vers l'objet est une variable de référence. Ces variables sont spécifiées comme un type spécifique lors de la déclaration, tel que Employee, Puppy, etc. Une fois qu'une variable est déclarée, son type ne peut pas être modifié.
- Les objets et les tableaux sont des types de données de référence.
- La valeur par défaut de tous les types de référence est null.
- Une variable de référence peut être utilisée pour référencer tout type compatible.
- Exemple : Site site = new Site("Example").
Constantes Java
Les constantes ne peuvent pas être modifiées pendant l'exécution du programme.
En Java, le mot-clé final est utilisé pour modifier des constantes. La méthode de déclaration est similaire à celle des variables :
final double PI = 3.1415927;
Bien que les noms de constantes puissent aussi être en minuscules, pour faciliter l'identification, on utilise généralement des lettres majuscules pour les constantes.
Les littéraux peuvent être affectés à des variables de tout type intégré. Par exemple :
byte a = 68; char a = 'A'
byte, int, long et short peuvent tous être représentés en décimal, en hexadécimal et en octal.
Lors de l'utilisation de littéraux, le préfixe0indique l'octal, tandis que le préfixe0xreprésente l'hexadécimal, par exemple :
int decimal = 100; int octal = 0144; int hexa = 0x64;
Comme dans d'autres langages, les constantes de chaîne Java sont aussi des séquences de caractères encadrées par deux guillemets. Voici des exemples de littéraux de chaîne :
"Hello World" "two\nlines" "\"This is in quotes\""
Les constantes de chaîne et les variables de caractère peuvent contenir n'importe quels caractères Unicode. Par exemple :
char a = '\u0001'; String a = "\u0001";
Le langage Java prend en charge certaines séquences d'échappement spéciales.
| Symbole | Signification du caractère |
|---|---|
| \n | Nouvelle ligne (0x0a) |
| \r | Retour chariot (0x0d) |
| \f | Saut de page (0x0c) |
| \b | Retour arrière (0x08) |
| \0 | Caractère nul (0x0) |
| \s | Espace (0x20) |
| \t | Onglet |
| \" | Guillemet double |
| \' | Guillemet simple |
| \\ | Barre oblique inversée |
| \ddd | Caractère octal (ddd) |
| \uxxxx | Caractère Unicode hexadécimal (xxxx) |
Conversion de type automatique
Les données de type entier, réel (constante) et caractère peuvent être mélangées dans les opérations. Lors des opérations, les différents types de données sont d'abord convertis vers le même type, puis l'opération est effectuée.
La conversion se fait du niveau inférieur vers le niveau supérieur.
低 ------------------------------------> 高 byte,short,char—> int —> long—> float —> double
La conversion de type de données doit respecter les règles suivantes :
1. La conversion de type ne peut pas être effectuée sur le type booléen.
-
2. Les types objet ne peuvent pas être convertis en objets de classes sans rapport.
-
3. Lors de la conversion d'un type de plus grande capacité vers un type de plus petite capacité, une conversion de type forcée (cast) doit être utilisée.
-
4. Le processus de conversion peut provoquer un dépassement de capacité ou une perte de précision, par exemple :
int i =128; byte b = (byte)i;
Comme le type byte fait 8 bits et que sa valeur maximale est 127, lorsqu'un int est converti de force en byte, la valeur 128 provoquera un dépassement.
-
5. La conversion d'un nombre à virgule flottante en entier se fait en supprimant la partie fractionnaire, et non par arrondi, par exemple :
(int)23.7 == 23; (int)-45.89f == -45
Conversion de type automatique
La largeur de bits du type de données avant conversion doit être inférieure à celle du type de données après conversion. Par exemple : le type de données short a 16 bits, il peut donc être automatiquement converti en type int avec 32 bits ; de même, le type de données float a 32 bits et peut être automatiquement converti en type double avec 64 bits.
Exemple
Le résultat d'exécution est :
char自动类型转换为int后的值等于97 char类型和int计算后的值等于66
Analyse :La valeur de c1 est le caractèrea, la consultation de la table ASCII montre que la valeur int correspondante est 97, et A correspond à 65, donci2=65+1=66。
Conversion de type
1. La condition est que les types de données en cours de conversion doivent être compatibles.
2. Format : (type)value, où type est le type de données après conversion de type forcée. Exemple :
Exemple
public class ForceTransform { public static void main(String[] args){ int i1 = 123; byte b = (byte)i1;//Conversion de type forcée en byte System.out.println("La valeur après conversion de type forcée de int en byte est égale à"+b); } }Résultat de l'exécution:
int强制类型转换为byte后的值等于123
Conversion de type implicite
1. Le type par défaut pour les entiers est int.
2. Les nombres décimaux sont par défaut du type à virgule flottante double ; lors de la définition d'un type float, vous devez ajouter F ou f après le nombre.
Cette section a expliqué les types de données de base de Java. La section suivante abordera les différents types de variables et leur utilisation.
Autres extensions