Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

Les primitives

Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes.

Toutefois ces objets contiennent des données possèdant un type (et une représentation). Ces données sont un ensemble d'éléments stockés en mémoire et baptisés pour l'occasion primitives. Les données manipulées avec Java, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le nombre d'octets) de la donnée ainsi que sa représentation, cela peut être entre autres :

  • des nombres entiers: (int)
  • réels, c'est-à-dire à virgules (float)

De plus, le langage Java introduit un type de donnée appelée boolean. Ce type de variable accepte deux états :

  • True (vrai): correspondant à une valeur vraie
  • False (faux): correspondant à une valeur fausse
En réalité, toutes les valeurs différentes de True sont considérées comme fausses (donc considérées comme égales à False). Si la variable n'est pas initialisée, sa valeur par défaut est False.

Voici un tableau répertoriant les primitives (types de données) de Java :

Primitive Signification Taille (en octets) Plage de valeurs acceptée
charCaractère2valeur du jeu de caractères Unicode (65000 caractères possibles)
byteEntier très court1-128 à 127
shortEntier court2-32768 à 32767
intEntier4-2 147 483 648 à 2 147 483 647
longEntier long8-9223372036854775808 à 9223372036854775807
floatflottant (réel)4-1.4*10-45 à 3.4*1038
doubleflottant double84.9*10-324 à 1.7*10308
booleanbooléen10 ou 1 (en réalité, toute autre valeur
que 0 est considérée égale à 1)

Les enveloppeurs (Wrappers)

Les primitives peuvent être "enveloppées" dans un objet provenant d'une classe prévue à cet effet et appelée Wrapper (mot anglais signifiant enveloppeur). Les enveloppeurs sont donc des objets pouvant contenir une primitive et auxquels sont associés des méthodes permettant de les manipuler.

Voici la liste des enveloppeurs disponibles avec Java :

Enveloppeur Primitive associée
BigDecimal aucune primitive associée, car cette classe peut contenir des valeurs décimales de précision quelconque
BigInteger aucune primitive associée, car cette classe peut contenir des valeurs entières de précision quelconque
Character char
Byte byte
Short short
Integer int
Long long
Float float
Double double
Boolean boolean
Void void

Nombre entier (int)

Un nombre entier est un nombre sans virgule qui peut être exprimé dans différentes bases :

  • Base décimale: L'entier est représenté par une suite de chiffre unitaires (de 0 à 9) ne devant pas commencer par le chiffre 0
  • Base hexadécimale: L'entier est représenté par une suite d'unités (de 0 à 9 ou de A à F (ou a à f)) devant commencer par 0x ou 0X
  • Base octale: L'entier est représenté par une suite d'unités (incluant uniquement des chiffres de 0 à 7) devant commencer par 0

Les entiers sont signés par défaut, cela signifie qu'ils comportent un signe. Pour stocker l'information concernant le signe (en binaire), les ordinateurs utilisent le complément à deux

Nombre à virgule (float)

Un nombre à virgule flottante est un nombre à virgule, il peut toutefois être représenté de différentes façons :

  • un entier décimal: 895
  • un nombre comportant un point (et non une virgule): 845.32
  • une fraction: 27/11
  • un nombre exponentiel, c'est-à-dire un nombre (éventuellement à virgule) suivi de la lettre e (ou E), puis d'un entier correspondant à la puissance de 10 (signé ou non, c'est-à-dire précédé d'un + ou d'un -)
    2.75e-2
    35.8E+10
    .25e-2

En réalité, les nombres réels sont des nombres à virgule flottante, c'est-à-dire un nombre dans lequel la position de la virgule n'est pas fixe, et est repérée par une partie de ses bits (appelée l'exposant), le reste des bits permettent de coder le nombre sans virgule (la mantisse).

Les nombres de type float sont codés sur 32 bits dont :

  • 23 bits pour la mantisse
  • 8 bits pour l'exposant
  • 1 bit pour le signe

Les nombres de type double sont codés sur 64 bits dont :

  • 52 bits pour la mantisse
  • 11 bits pour l'exposant
  • 1 bit pour le signe

La précision des nombres réels est approchée. Elle dépend par le nombre de positions décimales, suivant le type de réel elle sera au moins :

  • de 6 chiffres après la virgule pour le type float
  • de 15 chiffres après la virgule pour le type double

Caractère (char)

Le type char (provenant de l'anglais character) permet de stocker la valeur Unicode, codée sur 16 bits, d'un caractère, c'est-à-dire un nombre entier codé sur 16 bits, soit 65000 caractères !
Par conséquent il est possible de stocker un caractère accentué dans une variable de type char.

Si jamais on désire par exemple stocker la lettre B, on pourra définir cette donnée soit par son code Unicode (\u0066), soit en notant 'B' ou les apostrophes simples signifient code ascii de...

Chaînes de caractère (String)

Les chaînes de caractères ne correspondent pas à un type de données mais à une classe, ce qui signifie qu'une chaîne de caractère est un objet possèdant des attributs et des méthodes. Une chaîne peut donc être déclarée de la façon suivante :

String s = "Chaine de caractères";

Conversion de type de données (casting)

On appelle conversion de type de données, parfois transtypage (traduction de l'anglais casting), le fait de modifier le type d'une donnée en une autre. Il peut arriver par exemple que l'on veuille travailler sur un type de variable, puis l'utiliser sous un autre type. Imaginons que l'on travaille par exemple sur une variable en virgule flottante (type float), il se peut que l'on veuille "supprimer les chiffres après la virgule", c'est-à-dire convertir un float en int. Cette opération peut être réalisée de deux manières :

  • conversion implicite: une conversion implicite consiste en une modification du type de donnée effectuée automatiquement par le compilateur. Cela signifie que lorsque l'on va stocker un type de donnée dans une variable déclarée avec un autre type, le compilateur ne retournera pas d'erreur mais effectuera une conversion implicite de la donnée avant de l'affecter à la variable.
    int x;
    
    x = 8.324;
    x contiendra après affectation la valeur 8
  • conversion explicite: une conversion explicite (appelée aussi opération de cast) consiste en une modification du type de donnée forcée. Cela signifie que l'on utilise un opérateur dit de cast pour spécifier la conversion. L'opérateur de cast est tout simplement le type de donnée, dans lequel on désire convertir une variable, entre des parenthèses précédant la variable.
    int x;
    
    x = (int)8.324;
    x contiendra après affectation la valeur 8

    De plus, le langage Java rajoute une notation fonctionnelle pour faire une conversion explicite, la syntaxe de cette notation est :

    int x;
    
    x = int(8.324);


Dernière modification le mardi 14 octobre 2008 à 17:40:31.Ce document intitulé « Java - Les types de données » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Java: les variables Le concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans... www.commentcamarche.net/contents/java/javavar.php3
VBScript - Types de données Le type de données Variant Le type d'une variable correspond à la manière dont l'ordinateur stocke la variable en mémoire, c'est-à-dire la succession de 0 et de 1 dans les cases mémoire. VBScript comprend un type de données par défaut pouvant... www.commentcamarche.net/contents/vbscript/vbstype.php3
Recuperer donnes jdbc mysql dans jtable java Bonjour, est ce que quelque un peut m'expliquer ou bien me donner une source java tres simple qui permet de recuperer des données d'une table mysql dans un JTable. j'ai etablie la connexion..., je veux juste la classe de récupération des données.... www.commentcamarche.net/forum/affich-4612682-recuperer-donnes-jdbc-mysql-dans-jtable-java
Supprimer les anciennes versions de Java avec JavaRaJavaRa A propos de la gestion des machines virtuelles Java Présentation de JavaRa Exemple de rapport émis par JavaRa A propos de la gestion des machines virtuelles Java Pour des mises à jour ciblées de java Sun a finalement donné une... www.commentcamarche.net/faq/sujet-15645-supprimer-les-anciennes-versions-de-java-avec-javara
[java] importer données excel vers accessBonjour, j'aurais aimé savoir si il était possible ne java de charger une base de données access à partir d'un fichier excel. Je sais que c'est possible envb access Thanks www.commentcamarche.net/forum/affich-1478237-java-importer-donnees-excel-vers-access
Lettre type pour donner congé au propriétaire (Résolu)je dois quitter mon appartement,et je dois donner congé avec trois mois de préavis, trop long pour nous qui aimerions partir avant avec proposition de locataire suivant, comment le formuler dans mon courrier, merci d'avance Dolfin68 www.commentcamarche.net/forum/affich-4940355-lettre-type-pour-donner-conge-au-proprietaire
Méthode de Sauvegarde() en Java (Résolu)Bonjour à tous, Salut chers développeurs, Je viens de terminer un programme Java (type: projet de gestion), je suis un débutant, et je maitrise pas bien encore le travail avec les flux. j'ai besoin d'une simple méthode de Sauvegarde() pour enregistrer... www.commentcamarche.net/forum/affich-6007296-methode-de-sauvegarde-en-java
Les classes JavaLa notion d'objet Le langage Java intègre fortement le concept objet, il s'agit donc d'un langage orienté objet (LOO). Le terme langage orienté objet est plus qu'une simple appellation de plus pour désigner un type de langage, il... www.commentcamarche.net/contents/java/javaclass.php3
Connexion à la base de données avec JDBCConnexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la... www.commentcamarche.net/contents/jdbc/jdbcconnect.php3
Langage C - Les types de donnéesLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le... www.commentcamarche.net/contents/c/ctype.php3