Cet article est un compte rendu de ce que je comprends pour ceux qui étudient Java.
Dans mon article, les principales fonctionnalités Java sont résumées dans la liste ci-dessous.
・ Variables, types et conversion de type Page actuelle
En outre, les articles suivants sont mentionnés dans la description de cet article. https://www.sejuku.net/blog/22805
Lors de la déclaration d'une variable en Java, il est nécessaire de décrire le type de données de la variable.
Exemple d'entrée
int suuzi; //Type numérique
boolean dotti; //type booléen vrai ou faux
String mozi; //Type de caractère
System.out.println(mozi); //Essayer de regarder à l'intérieur de Mozi
Cependant, cette description est une déclaration et n'a pas été initialisée. Une erreur se produit s'il y a des variables qui ne peuvent pas être initialisées en Java.
Déclaration d'erreur
Erreur:La variable mozi n'a peut-être pas été initialisée
int suuzi; //Type numérique
boolean dotti; //type booléen vrai ou faux
String mozi; //Type de caractère
suuzi = 10;
dotti = true;
mozi = "lettre";
System.out.println(suuzi); //Essayez de regarder à l'intérieur des chiffres
System.out.println(dotti); //Essayer de regarder à l'intérieur de Dotti
System.out.println(mozi); //Essayer de regarder à l'intérieur de Mozi
Si vous définissez le contenu pour ce qui précède, il sera initialisé et aucune erreur ne se produira même si vous essayez de vous y référer.
Courir
10
true
lettre
Il est également possible d'écrire les deux étapes ci-dessus ensemble.
int suuzi = 10; //Type numérique
boolean dotti = true; //type booléen vrai ou faux
String mozi = "lettre"; // lettre型
System.out.println(suuzi); //Essayez de regarder à l'intérieur des chiffres
System.out.println(dotti); //Essayer de regarder à l'intérieur de Dotti
System.out.println(mozi); //Essayer de regarder à l'intérieur de Mozi
Si vous écrivez la variable de type name = contents comme ci-dessus, vous pouvez déclarer et initialiser en même temps.
Courir
10
true
lettre
Jusqu'à présent, nous avons parlé de déclarations et d'initialisation, mais à partir de maintenant, nous allons décrire les types. Il existe deux types principaux, le type de base et le type de référence. Regardons chacun.
Type entier Nous avons affaire à des données entières. Il est facile de comprendre si vous pensez que plus la taille est grande, plus les valeurs numériques peuvent être gérées.
Type de données | Taille | Gamme de valeurs |
---|---|---|
byte | 1byte | -128~127 |
short | 2byte | -32768~32767 |
int | 4byte | -2147483648~2147483647 |
long | 8byte | -9223372036854775808~9223372036854775807 |
En regardant ce tableau, je pense qu'il y a une opinion selon laquelle seuls les longs avec une grande taille devraient être utilisés, mais comme la quantité d'octets répertoriée dans le tableau est utilisée quelle que soit la taille de la valeur, on peut voir qu'une petite valeur peut être entrée. Je veux garder le nombre d'octets aussi petit que possible. Quand je l'écris, il y en a beaucoup. Si vous trouvez que cela ne suffit pas, ce sera long. S'il est octet ou court, il y en a peu et je pense qu'une erreur telle que ne pas entrer de valeur peut se produire.
Type à virgule flottante Un nombre qui comprend un point décimal.
Type de données | Taille | Gamme de valeurs |
---|---|---|
float | 4byte | ±3.40E38~±1.40E45 |
double | 8byte | ±4.94E-324~±1.79E+308 |
Type de caractère Je traite des lettres. Le type de base char est utilisé pour gérer un caractère.
Type de données | Taille | Gamme de valeurs |
---|---|---|
char | 2byte | Code de caractère 2 octets |
Type de Boule (type booléen) Nous avons affaire à des informations logiques d'authenticité. Contient vrai ou faux.
Type de données | Taille | Gamme de valeurs |
---|---|---|
boolean | 1bit | vrai ou faux |
Il est classé dans ces quatre. Une autre caractéristique du type de base est que la variable elle-même contient une valeur.
Types autres que ceux ci-dessus, essentiellement String Tableau classe Est ciblé. Contrairement au type de base, celui-ci ne contient pas la valeur dans la variable elle-même, mais l'endroit où elle est stockée. Je pense qu'il est facile de penser à l'analogie du type de référence comme un tableau, donc https://www.javadrive.jp/start/array/index3.html Suivons le code dans le lien ci-dessus.
class Main{
public static void main(String args[]){
int n[];
int m[];
n = new int[2];
System.out.println(n);
n[0] = 10;
m = n;
System.out.println(m);
System.out.println("n[0] = " + n[0]);
System.out.println("m[0] = " + m[0]);
}
}
Quand tu cours
[I@69379752
[I@69379752
n[0] = 10
m[0] = 10
Il sera affiché. L'endroit où le type de référence est affiché est affiché dans les deux premiers. Le fait qu'ils soient identiques signifie qu'ils regardent la même chose, donc n et m regardent le même tableau.
C'est tout pour le type de base et le type de référence. Ensuite, je décrirai le casting.
Ces types de données peuvent également être convertis et transmis. Je l'ai décrit et vu.
int i = 30;
System.out.println(i);
Avec la description ci-dessus
30
Est affiché,
int i = 30;
System.out.println((double)i);
Lorsqu'il est exécuté avec
30.0
Ce sera. Étant donné que le type entier a un point décimal, il est devenu un type à virgule flottante (double).
Cependant, veuillez noter que certains cas ne peuvent pas être convertis.
class Main{
public static void main(String args[]){
String str = "lettre";
System.out.println((int)str);
}
}
Quand tu cours
Erreur:Type incompatible:Impossible de convertir String en int:
System.out.println((int)str);
^
Il sera affiché. Il n'est fondamentalement pas possible de faire d'un type de référence un type de base.
En termes de type numérique, il est également lié à la relation de taille.
class Main{
public static void main(String args[]){
int i = 2147483647; //Valeur maximale de int
System.out.println(i);
i += 1;
System.out.println(i);
}
}
Quand tu cours
2147483647
-2147483648
Et débordé car la valeur maximale de int a été dépassée. Il
class Main{
public static void main(String args[]){
int i = 2147483647; //Valeur maximale de int
System.out.println(i);
System.out.println((long)i + 1);
}
}
Ici, i est moulé pour en faire un long qui contient de nombreux nombres, puis 1 est ajouté. Quand tu fais ça
2147483647
2147483648
1 peut être ajouté sans déborder comme.
Cela peut également entraîner soudainement une erreur involontaire, je vais donc l'expliquer ici. Lorsque je calcule le type d'octet ou court, il devient soudainement de type int.
class Main{
public static void main(String args[]){
byte b1 = 10;
byte b2 = 10;
byte kekka = b1 * b2;
System.out.println(kekka);
}
}
test.java:8:Erreur:Type incompatible:Conversion inter-octets qui peut perdre en précision
byte kekka = b1 * b2;
^
Surtout dans le code, bien qu'il n'y ait pas de description telle que la conversion en int, une erreur de conversion de int en octet apparaît. Changeons le type de la variable kekka que nous recevons en int pour voir si le type a vraiment changé.
class Main{
public static void main(String args[]){
byte b1 = 10;
byte b2 = 10;
int kekka = b1 * b2;
System.out.println(kekka);
}
}
100
J'ai pu sortir. J'ai calculé avec octet et octet, mais vous pouvez voir que le résultat est int. Soyez prudent lorsque vous recevez les numéros.
Cet article se penche beaucoup sur les moisissures. Les types sont toujours inclus dans les descriptions Java, je voudrais donc m'assurer que vous les comprenez.
Recommended Posts