J'étudie Java et j'écris un article pour sortir ce que j'ai appris et pour établir des connaissances. Je décrirai ce que j'ai appris séparément comme suit.
La définition de variables en Java nécessite les deux étapes suivantes:
Exemple:
int number;
int est le type de données qui représente un nombre et number est le nom de la variable.
Dans l'exemple ci-dessus, le numéro de variable de type int est défini.String text;
String est un type de données qui représente une chaîne et la première lettre est en majuscule. text est le nom de la variable.
Dans l'exemple ci-dessus, un texte de variable de type String est défini.Comme pour 1 et 2, ajoutez un point-virgule à la fin de la phrase.
・ Le premier caractère est Alphabet majuscules / minuscules, symboles $, _, etc.
・ Le cas est strictement distingué.
・ Les nombres peuvent être utilisés après le deuxième caractère.
-Il n'y a pas de limite sur le nombre de caractères (longueur).
-Null, true, false ne peuvent pas être utilisés.
・ Les mots réservés ne peuvent pas être utilisés. Les mots réservés sont des noms déjà utilisés dans le langage Java. Exemple: if, while, switch, etc.
Comme le montre l'exemple ci-dessous, l'affectation d'une valeur en même temps que la définition d'une variable s'appelle l'initialisation de variable. Exemple:
int number = 3;
Dans l'exemple ci-dessus, le numéro de variable de type int est défini et le numéro 3 est attribué.String text =" caractère ";
Dans l'exemple ci-dessus, un texte de variable de type String est défini et le "caractère" de la chaîne de caractères est attribué.Les types sont mentionnés dans l'explication ci-dessus, mais les types sont également subdivisés en fonction du type de valeur. Il existe des types de données en fonction de la plage de données pouvant être gérées. Plus la plage de données est large, plus elle consomme de mémoire. Assurez-vous de sélectionner le type de données approprié en fonction de la quantité de données à traiter et de la quantité de mémoire.
Type de données | Taille | Gamme de valeurs |
---|---|---|
byte | 1byte | -Valeur entière de 128 à 127 |
char | 1byte | '\u0000'De'\uffff'Une valeur entière jusqu'à. (Il s'agit de 0 à 65535) |
short | 1byte | -Une valeur entière comprise entre 32768 et 32767 |
int | 1byte | -Une valeur entière comprise entre 2147483648 et 2147483647. |
long | 1byte | -Valeur entière comprise entre 9223372036854775808 et 9223372036854775807. |
Type de données | Taille | Gamme de valeurs |
---|---|---|
float | 4byte | Point décimal simple précision 32 bits |
double | 8byte | Point décimal simple précision 63 bits |
Type de données | Taille | Gamme de valeurs |
---|---|---|
boolean | 1bit | Une valeur qui est vraie ou fausse. |
Il existe quatre types de référence: le type de classe, le type d'interface, la variable de type et le type de tableau. Les données de type classe et de type d'interface indiquent l'emplacement de l'objet, et les données de type tableau indiquent l'emplacement de l'objet tableau. La différence avec le type de base comme précédemment est que le type de base représente les données elles-mêmes, tandis que le type de référence indique l'emplacement des données. Pour faire simple, le type de base représente la maison elle-même et le type de référence représente l'adresse de la maison.
Exemple:
Main.java
class Main{
public static void main(String args[]){
int a[] = {1};
int b[] = a; //Où b a la même valeur de référence que a
System.out.println(a[0]); //a et b ont le même résultat de sortie
System.out.println(b[0]);
b[0] = 5; //La valeur référencée est mise à jour
System.out.println(a[0]); //a et b ont le même résultat de sortie
System.out.println(b[0]);
}
}
Résultat d'exécution ↓
1
1
5
5
Dans l'exemple ci-dessus, a et b voient la même référence par le code "int b [] = a;". Jusqu'à ce que la valeur de référence change avec le code "b [0] = 5;" sur la 5ème ligne, les deux se réfèrent à "1", mais après que la valeur de référence soit mise à jour à "5" Fait référence à "5".
La conversion de type variable s'appelle la conversion. Les variables qui étaient initialement de type int peuvent être modifiées en type long, et vice versa. Lors du calcul de la multiplication, etc., cela ne peut être fait qu'avec le même type de données. Lors du calcul de différents types, convertissez-les dans le même type. Il existe deux types de méthodes de conversion de type Java: la méthode de conversion automatique et la méthode de conversion manuelle. Si vous ajoutez le type String et le type int, le type int est automatiquement converti en type String.
Exemple:
test.java
System.out.printIn("Pomme" + "5" + "Il y a");
→ Converti en "Pommes" + "5" + "Il y a"
Il y a 5 pommes.
Est sortie.
Même si vous faites beaucoup de calculs avec le type entier de type int, le résultat du calcul sera le type numérique. Exemple:
test.java
System.out.printIn(5/2);
↓
2
En fait, 2.5 est la bonne réponse, mais comme 2.5 est un type double, il ne peut pas être calculé entre les types int. Si vous voulez que le résultat du calcul de 5/2 soit 2,5,
Main.java
System.out.printIn(5.0/2);
ça ira. En effet, le résultat du calcul de type int et de type double est de type double (si l'un est double, le résultat est double). De cette manière, lorsque le résultat du calcul est représenté par une minorité flottante, l'entier est représenté par une minorité.
Cast lorsque vous souhaitez obtenir une valeur précise dans le calcul entre les types int.
Main.java
int number1 = 13;
int number2 = 4;
System.out.printIn((double)number1/number2);
↓
3.25
En outre, ** la conversion de gros caractères en petits types peut entraîner une perte de données. ** ** Notez la plage de données du type de base d'origine et la plage de données du type de base coulée.
Main.java
public class Main {
public static void main(String[] args) {
double doubleMax = Double.MAX_VALUE;
int result = (int) doubleMax; //Convertissez la valeur maximale de double en type int et affectez-la au résultat de la variable de type int
System.out.println(doubleMax);
System.out.println(result);
}
}
Résultat d'exécution ↓
1.7976931348623157E308
2147483647
Cela ne provoque pas d'erreur, mais la valeur maximale du type double est remplacée par la valeur maximale du type int, qui est une valeur involontaire.
Il existe également une promotion pour la conversion de type. La promotion est un mécanisme qui convertit automatiquement la valeur en un type plus large lors du calcul de la valeur. Par exemple, lors du calcul d'un nombre de type long, le type de l'autre valeur est automatiquement converti en long.
Calculez la variable de type d'octet a et la variable de type long b. Une erreur se produira même si vous essayez de recevoir le résultat avec la réponse de variable de type octet.
Main.java
class Main{
public static void main(String args[]){
byte a = 10;
long b = 20000;
byte answer = a * b;
System.out.println(answer);
}
}
Résultat d'exécution ↓
//Type mismatch: cannot convert from long to byte
Pour obtenir le résultat correct, modifiez le type de réponse variable qui reçoit le résultat d'octet en long.
Main.java
class Main{
public static void main(String args[]){
byte a = 10;
long b = 20000;
long answer = a * b;
System.out.println(answer);
}
}
Résultat d'exécution ↓
200000
Si ni l'un ni l'autre n'est un type long, les valeurs de type Byte, de type court et de type char sont converties en type int.
De plus, si l'un est un float et l'autre n'est pas un double, l'autre valeur sera convertie en float.
Main.java
class Main{
public static void main(String args[]){
byte a = 10;
float b = 0.83f;
byte answer = a * b;
System.out.println(answer);
}
}
Résultat d'exécution ↓
//Type mismatch: cannot convert from float to byte
Main.java
class Main{
public static void main(String args[]){
byte a = 10;
float b = 0.83f;
float answer = a * b;
System.out.println(answer);
}
}
Résultat d'exécution ↓
8.3
Sinon, si vous convertissez le résultat du calcul en octets, aucune erreur ne se produira, mais dans ce cas, les chiffres après la virgule décimale seront omis, ce ne sera donc pas une réponse exacte.
Main.java
class Main{
public static void main(String args[]){
byte a = 10;
float b = 0.83f;
byte answer = (byte)(a * b);
System.out.println(answer);
}
}
Résultat d'exécution ↓
8
Si vous calculez avec le type char ou le type octet sans promotion, la réponse sera écrasante et la réponse ne sera pas correcte. En outre, si vous ne transtypez pas le calcul entre octets, une erreur se produit.
Main.java
class Main{
public static void main(String args[]){
byte a = 1;
byte b = 2;
byte answer = a * b;
System.out.println(answer);
}
}
Résultat d'exécution ↓
//Type mismatch: cannot convert from int to byte Java
Pour obtenir le résultat correct, changez le type de la réponse variable qui reçoit le résultat d'octet en int.
Main.java
class Main{
public static void main(String args[]){
byte a = 1;
byte b = 2;
int answer = a * b;
System.out.println(answer);
}
}
Résultat d'exécution ↓
2
Ou, si vous souhaitez recevoir le résultat en octets, transtypez le résultat du calcul en octet.
Main.java
class Main{
public static void main(String args[]){
byte a = 1;
byte b = 2;
byte answer = (byte)(a * b);
System.out.println(answer);
}
}
Résultat d'exécution ↓
2
Comme vous pouvez le voir, en java, si vous ne faites pas attention au type, une erreur se produira dans un endroit inattendu, alors soyez prudent.
Recommended Posts