Conversion de type de données Java (conversion automatique et conversion forcée)
La conversion de type de données est divisée en conversion automatique et conversion forcée. La conversion automatique est une conversion effectuée "silencieusement" lors de l'exécution du programme. Elle ne nécessite pas de déclaration préalable de l'utilisateur. Elle convertit généralement un type à chiffres bas en un type à chiffres élevés. La conversion doit être déclarée. dans le code, et l'ordre de conversion n'a pas d'importance.
Conversion automatique du type de données
La conversion automatique convertit dans l'ordre de bas en haut. La relation de priorité entre les différents types de données est la suivante :
Faible---------------------------------- ------ -------->High
octet, court, char-> long -> float -> différents types de données sont d'abord convertis vers le même type, puis effectuent des opérations. Les règles de conversion sont les suivantes :
Conversion forcée du type de données
Le Le format de conversion forcée consiste à ajouter avant les données à convertir "( )", puis à ajouter le type de données à convertir entre parenthèses. Une fois certaines données transformées, la précision sera perdue, tandis que d'autres seront plus précises. L'exemple suivant peut illustrer ce problème.
public class Demo { public static void main(String[] args){ int x; double y; x = (int)34.56 + (int)11.2; // 丢失精度 y = (double)x + (double)10 + 1; // 提高精度 System.out.println("x=" + x); System.out.println("y=" + y); } }
Résultats en cours d'exécution :
x=45 y=56.0
Analyser attentivement le programme ci-dessus segment : Puisqu'il y a une conversion de type forcée de int avant 34.56, 34.56 devient 34. De même, 11,2 devient 11, donc le résultat de x est 45. Il y a un double type avant x, donc la valeur de x devient 45,0, et le devant de 10 est également forcé d'être double, donc il devient également 10,0, donc la valeur finale de y devient 56.
Types de données Java et définitions de variables
Java est un langage fortement typé et le type de données doit être spécifié lors de la déclaration des variables. La valeur d'une variable occupe une certaine quantité d'espace mémoire. Différents types de variables occupent différentes tailles.
Il existe 8 types de données de base en Java, dont 4 types entiers, 2 types à virgule flottante, 1 type de caractère et 1 type booléen.
Pour les données entières, le type int est généralement utilisé. Mais si vous représentez l’énergie libérée par les bombes atomiques larguées sur Hiroshima et Nagasaki, vous devez utiliser les caractères longs. Les types byte et short sont principalement utilisés dans des applications spécifiques, telles que le traitement de fichiers de bas niveau ou les grands tableaux qui doivent contrôler la quantité d'espace de stockage qu'ils occupent.
En Java, la longueur des données entières n'a rien à voir avec la plateforme, ce qui résout de nombreux problèmes posés aux programmeurs lors du portage d'un logiciel d'une plateforme à une autre. En revanche, la longueur des données entières C/C dépend de la plate-forme, et les programmeurs doivent choisir des types d'entiers appropriés pour différentes plates-formes. Cela peut entraîner la corruption des programmes qui s'exécutent de manière stable sur les systèmes 64 bits sur les systèmes 32 bits. débordement.
Octal a un préfixe 0, comme 010 correspondant à 8 en décimal ; correspondant au décimal 9 sur 9. Également à partir de Java 7, vous pouvez utiliser des traits de soulignement pour séparer les nombres, de la même manière que les nombres anglais sont écrits. Par exemple, 1_000_000 signifie 1 000 000, soit un million. Les traits de soulignement sont simplement là pour rendre le code plus lisible et le compilateur les supprimera.
De plus, contrairement à C/C, Java ne prend pas en charge les types non signés.
Le type float a un nombre valide maximum de 7 chiffres, et la longueur du nombre valide comprend la partie entière et la partie décimale. Par exemple :
Remarque : Il y a un signe "F" ou "f" après chaque type float. Ce signe signifie qu'il s'agit d'un type float.float x = 223.56F; float y = 100.00f;
Le nombre maximum de chiffres valides pour le type double est de 15 chiffres. Comme le type float, double est suivi du drapeau "D" ou "d". Par exemple :
Remarque : Pour les données à virgule flottante sans aucun indicateur, le système utilise par défaut un double type.double x = 23.45D; double y = 422.22d; double z = 562.234;
Dans la plupart des cas, le type double est utilisé et la précision du flotteur est difficile à répondre à la demande.
Exemples d'application de différents types de données :
public class Demo { public static void main(String[] args){ // 字符型 char webName1 = '微'; char webName2 = '学'; char webName3 = '苑'; System.out.println("网站的名字是:" + webName1 + webName2 + webName3); // 整型 short x=22; // 十进制 int y=022; // 八进制 long z=0x22L; // 十六进制 System.out.println("转化成十进制:x = " + x + ", y = " + y + ", z = " + z); // 浮点型 float m = 22.45f; double n = 10; System.out.println("计算乘积:" + m + " * " + n + "=" + m*n); } }
Résultats d'exécution :
网站的名字是:微学苑 转化成十进制:x = 22, y = 18, z = 34 计算乘积:22.45 * 10.0=224.50000762939453
Vous pouvez voir à partir des résultats en cours d'exécution Même si les données à virgule flottante ne contiennent que des entiers et aucune décimale, le système ajoutera automatiquement un point décimal lors de sa sortie sur la console, et toutes les décimales seront définies sur 0.
Explication du type booléen
Si vous avez de l'expérience en programmation et comprenez le type booléen, veuillez ignorer le didacticiel suivant. Le didacticiel suivant est destiné aux lecteurs qui n'ont que des bases en langage C (le langage C n'en a pas). type booléen).
En langage C, si la condition de jugement est vraie, 1 sera renvoyé, sinon 0 sera renvoyé, par exemple :
#include <stdio.h> int main(){ int x = 100>10; int y = 100<10; printf("100>10 = %d\n", x); printf("100<10 = %d\n", y); return 0; }
Résultat d'exécution :
100>10 = 1 100<10 = 0
Mais c'est différent en Java si la condition est remplie, elle renvoie vrai, sinon elle renvoie faux, qui est un type booléen. Par exemple :
public class Demo { public static void main(String[] args){ // 字符型 boolean a = 100>10; boolean b = 100<10; System.out.println("100>10 = " + a); System.out.println("100<10 = " + b); if(a){ System.out.println("100<10是对的"); }else{ System.out.println("100<10是错的"); } } }
Résultat d'exécution :
100>10 = true 100<10 = false 100<10是对的
En fait, vrai est équivalent à 1 et faux est équivalent à 0 , mais a changé de nom et est devenu un type de données à part entière.
Pour une analyse plus approfondie des types de données et des variables en Java, veuillez faire attention au site Web PHP chinois !