Types de données Java
Java est typé statiquement et également un langage fortement typé car, en Java, chaque type de données (entier, caractère, hexadécimal, décimal compressé, etc.) est prédéfini dans le cadre du langage de programmation et toutes les constantes ou variables définies pour un programme donné doit être décrit avec l'un des types de données Java.
Types de données en Java
Types de données en Java sont de différentes tailles et valeurs qui peuvent être stockées dans la variable créée selon la commodité et les circonstances pour couvrir tous les cas de test. Java comporte deux catégories dans lesquelles les types de données sont séparés
- Type de données primitif : tels que boolean, char, int, short, byte, long, float et double
- Type de données non primitif ou type de données objet : tels que String, Array, etc.
Types de données primitifs en Java
Les données primitives ne sont que des valeurs uniques et n'ont aucune capacité particulière. Il existe 8 types de données primitifs. Ils sont représentés ci-dessous sous forme de tableau comme suit :
| Taper | Description | Défaut | Taille | Exemples de littéraux | Plage de valeurs |
|---|---|---|---|---|---|
| booléen | vrai ou faux | FAUX | 1 peu | vrai faux | vrai faux |
| octet | entier complémentaire à deux | 0 | 8 bits | (aucun) | -128 à 127 |
| carboniser | Caractère Unicode | u0000 | 16 bits | 'a', 'u0041', '101', '', '', ' ', 'b' | représentation en caractères des valeurs ASCII 0 à 255 |
| court | entier complémentaire à deux | 0 | 16 bits | (aucun) | -32 768 à 32 767 |
| int | entier complémentaire à deux | 0 | 32 bits | -2,-1,0,1,2 | -2 147 483 648 à 2 147 483 647 |
| long | entier complémentaire à deux | 0 | 64 bits | -2L,-1L,0L,1L,2L | -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 |
| flotter | Virgule flottante IEEE 754 | 0,0 | 32 bits | 1,23e100f , -1,23e-100f , .3f ,3,14F | jusqu'à 7 chiffres décimaux |
| double | Virgule flottante IEEE 754 | 0,0 | 64 bits | 1.23456e300d , -123456e-300d , 1e1d | jusqu'à 16 chiffres décimaux |
Discutons et implémentons chacun des types de données suivants :
1. Type de données booléen
Le type de données booléen ne représente qu'un seul bit d'information soit vrai, soit faux qui est destiné à représenter les deux valeurs de vérité de la logique et de l'algèbre booléenne, mais la taille du type de données booléen est dépendant de la machine virtuelle . Les valeurs de type booléen ne sont pas converties implicitement ou explicitement (avec des conversions) en un autre type. Mais le programmeur peut facilement écrire du code de conversion.
Syntaxe:
boolean booleanVar;
Taille: Dépend de la machine virtuelle
2. Type de données d'octet
Le type de données octet est un entier complémentaire à deux signé de 8 bits. Le type de données byte est utile pour économiser de la mémoire dans de grands tableaux.
Syntaxe:
byte byteVar;
Taille: 1 octet (8 bits)
3. Type de données court
Le type de données court est un entier complémentaire à deux signé de 16 bits. Semblable à l'octet, utilisez un short pour économiser de la mémoire dans de grands tableaux, dans les situations où les économies de mémoire sont réellement importantes.
Syntaxe:
short shortVar;
Taille: 2 octets (16 bits)
4. Type de données entier
Il s’agit d’un entier signé en complément à deux de 32 bits.
Syntaxe:
int intVar;
Taille: 4 octets ( 32 bits )
Souviens-toi: Dans Java SE 8 et versions ultérieures, nous pouvons utiliser le type de données int pour représenter un entier non signé de 32 bits, qui a une valeur comprise dans la plage [0, 2 32 -1]. Utilisez la classe Integer pour utiliser le type de données int comme entier non signé.
5. Type de données long
La portée d'un long est assez large. Le type de données long est un entier complémentaire à deux de 64 bits et est utile dans les cas où un type int n'est pas assez grand pour contenir la valeur souhaitée. La taille du type de données long est de 8 octets (64 bits).
Syntaxe:
long longVar;
Souviens-toi: Dans Java SE 8 et versions ultérieures, vous pouvez utiliser le type de données long pour représenter un fichier long non signé de 64 bits, qui a une valeur minimale de 0 et une valeur maximale de 2. 64 -1. La classe Long contient également des méthodes telles que comparer Unsigned, diviser Unsigned, etc. pour prendre en charge les opérations arithmétiques pour unsigned long.
6. Type de données flottant
Le type de données float est une virgule flottante IEEE 754 32 bits simple précision. Utilisez un float (au lieu de double) si vous devez économiser de la mémoire dans de grands tableaux de nombres à virgule flottante. La taille du type de données float est de 4 octets (32 bits).
Syntaxe:
float floatVar;
7. Double type de données
Le type de données double est une virgule flottante IEEE 754 64 bits double précision. Pour les valeurs décimales, ce type de données constitue généralement le choix par défaut. La taille du type de données double est de 8 octets ou 64 bits.
Syntaxe:
double doubleVar;
Note: Les types de données flottantes et doubles ont été spécialement conçus pour les calculs scientifiques, où les erreurs d'approximation sont acceptables. Si la précision est la préoccupation la plus importante, il est recommandé de ne pas utiliser ces types de données et d'utiliser la classe BigDecimal à la place.
Il est recommandé de passer par arrondir les erreurs en Java.
8. Type de données de caractères
Le type de données char est un seul caractère Unicode de 16 bits d'une taille de 2 octets (16 bits).
Syntaxe:
char charVar;
Pourquoi la taille du caractère est-elle de 2 octets en Java ?
Ainsi, d'autres langages comme C/C++ utilisent uniquement des caractères ASCII, et pour représenter tous les caractères ASCII, 8 bits suffisent. Mais Java utilise le Système Unicode et non le système de code ASCII et pour représenter le système Unicode, 8 bits ne suffisent pas pour représenter tous les caractères, donc Java utilise 2 octets pour les caractères. Unicode définit un jeu de caractères entièrement international pouvant représenter la plupart des langues écrites du monde. Il s'agit d'une unification de dizaines de jeux de caractères, tels que le latin, le grec, le cyrillique, le katakana, l'arabe et bien d'autres.
Exemple:
Java
// Java Program to Demonstrate Char Primitive Data Type> // Class> class> GFG {> > // Main driver method> > public> static> void> main(String args[])> > {> > // Creating and initializing custom character> > char> a => 'G'> ;> > // Integer data type is generally> > // used for numeric values> > int> i => 89> ;> > // use byte and short> > // if memory is a constraint> > byte> b => 4> ;> > // this will give error as number is> > // larger than byte range> > // byte b1 = 7888888955;> > short> s => 56> ;> > // this will give error as number is> > // larger than short range> > // short s1 = 87878787878;> > // by default fraction value> > // is double in java> > double> d => 4.355453532> ;> > // for float use 'f' as suffix as standard> > float> f => 4> .7333434f;> > // need to hold big range of numbers then we need> > // this data type> > long> l => 12121> ;> > System.out.println(> 'char: '> + a);> > System.out.println(> 'integer: '> + i);> > System.out.println(> 'byte: '> + b);> > System.out.println(> 'short: '> + s);> > System.out.println(> 'float: '> + f);> > System.out.println(> 'double: '> + d);> > System.out.println(> 'long: '> + l);> > }> }> |
Sortir
char: G integer: 89 byte: 4 short: 56 float: 4.7333436 double: 4.355453532 long: 12121
Type de données non primitif ou types de données de référence
Le Types de données de référence contiendra une adresse mémoire de valeurs de variable car les types référence ne stockeront pas la valeur de variable directement en mémoire. Ce sont des chaînes, des objets, des tableaux, etc.
1. Cordes
Cordes sont définis comme un tableau de caractères. La différence entre un tableau de caractères et une chaîne en Java réside dans le fait que la chaîne est conçue pour contenir une séquence de caractères dans une seule variable, alors qu'un tableau de caractères est une collection d'entités distinctes de type caractère. Contrairement au C/C++, les chaînes Java ne se terminent pas par un caractère nul.
Syntaxe: Déclarer une chaîne
= ;
Exemple:
// Declare String without using new operator String s = 'techcodeview.com'; // Declare String using new operator String s1 = new String('techcodeview.com'); 2. Classe
UN classe est un plan ou un prototype défini par l'utilisateur à partir duquel les objets sont créés. Il représente l'ensemble des propriétés ou méthodes communes à tous les objets d'un même type. En général, les déclarations de classe peuvent inclure ces composants, dans l'ordre :
- Modificateurs : Une classe peut être publique ou avoir un accès par défaut. Faire référence à accéder aux spécificateurs pour les classes ou les interfaces en Java
- Nom du cours: Le nom doit commencer par une lettre initiale (en majuscule par convention).
- Superclasse (le cas échéant) : Le nom du parent (superclasse) de la classe, le cas échéant, précédé du mot-clé extends. Une classe ne peut étendre (sous-classe) qu'un seul parent.
- Interfaces (le cas échéant) : Une liste d'interfaces séparées par des virgules implémentées par la classe, le cas échéant, précédée du mot clé Implements. Une classe peut implémenter plusieurs interfaces.
- Corps: Le corps de la classe est entouré d'accolades, { }.
3. Objet
Un Objet est une unité de base de la programmation orientée objet et représente des entités réelles. Un programme Java typique crée de nombreux objets qui, comme vous le savez, interagissent en appelant des méthodes. Un objet est constitué de :
- État : Il est représenté par les attributs d'un objet. Il reflète également les propriétés d'un objet.
- Comportement : Il est représenté par les méthodes d'un objet. Il reflète également la réponse d'un objet à d'autres objets.
- Identité : Il donne un nom unique à un objet et permet à un objet d'interagir avec d'autres objets.
4. Interfaces
Comme une classe, un interface peut avoir des méthodes et des variables, mais les méthodes déclarées dans une interface sont par défaut abstraites (uniquement la signature de la méthode, pas de corps).
- Les interfaces précisent ce qu'une classe doit faire et non comment. C'est le modèle de la classe.
- Une interface concerne les capacités, comme un joueur peut être une interface et toute classe implémentant Player doit être capable (ou doit implémenter) move(). Il spécifie donc un ensemble de méthodes que la classe doit implémenter.
- Si une classe implémente une interface et ne fournit pas de corps de méthode pour toutes les fonctions spécifiées dans l'interface, alors la classe doit être déclarée abstraite.
- Un exemple de bibliothèque Java est Interface du comparateur . Si une classe implémente cette interface, elle peut alors être utilisée pour trier une collection.
5. Tableau
Un Tableau est un groupe de variables de type similaire désignées par un nom commun. Les tableaux en Java fonctionnent différemment qu’en C/C++. Voici quelques points importants concernant les tableaux Java.
- En Java, tous les tableaux sont alloués dynamiquement. (discuté ci-dessous)
- Puisque les tableaux sont des objets en Java, nous pouvons trouver leur longueur en utilisant la longueur des membres. Ceci est différent du C/C++ où l'on trouve la longueur en utilisant la taille.
- Une variable de tableau Java peut également être déclarée comme d'autres variables avec [] après le type de données.
- Les variables du tableau sont ordonnées et chacune a un index commençant par 0.
- Le tableau Java peut également être utilisé comme champ statique, variable locale ou paramètre de méthode.
- Le taille d'un tableau doit être spécifié par une valeur int et non long ou court.
- La superclasse directe d'un type tableau est Object.
- Chaque type de tableau implémente les interfaces Clonable et java.io.Sérialisable .
FAQ sur les types de données en Java
1. Que sont les types de données en Java ?
Les types de données sont de différentes tailles et valeurs qui peuvent être stockées dans la variable créée selon la commodité et les circonstances pour couvrir tous les cas de test.
2. Quels sont les 8 types de données utilisés en Java ?
Il existe 8 principaux types de données primitives en Java, comme mentionné ci-dessous :
- booléen
- octet
- carboniser
- court
- int
- long
- flotter
- double
3. Qu'est-ce qu'un type primitif en Java ?
Les types de données primitifs sont les types en Java qui peuvent stocker une seule valeur et n'offrent aucune fonctionnalité particulière.
4. Pourquoi char utilise 2 octets en Java et qu'est-ce que u0000 ?
Char utilise 2 octets en Java car il utilise le système Unicode plutôt que le système ASCII. u000 est la plage la plus basse du système Unicode.
Vérifier: Quiz sur le type de données en Java