Déclaration, initialisation et types de variables Java

introduction

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

Déclarer une variable

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

Initialisation

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

Déclaration + initialisation

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

À propos du type

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 de base

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.

Type de référence

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.

Type cast (conversion de type)

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.

Promotion (promotion)

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.

À la fin

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

Déclaration, initialisation et types de variables Java
[Introduction à Java] À propos des variables et des types (déclaration de variable, initialisation, type de données)
Déclaration / initialisation de variable Java / type de données (distribution et promotion)
déclaration de variable java
[Introduction à Java] À propos des déclarations et des types de variables
[Java] Types de variables et types
À propos des instructions de déclaration de variable Java
[Java] Types de base et notes d'instructions
Série Java Primer (variations et types)
Types de données de base et types de référence (Java)
Comment écrire une déclaration de variable Java
A propos des types primitifs et des types de référence Java
Types de données de base et types de référence Java
[Java] Types d'exception et traitement de base
Java pour les débutants, les variables et les types
variable de tableau java
Portée de la variable Java (portée)
Portée de la variable Java
Java et JavaScript
XXE et Java
[Introduction à Java] À propos des opérations de tableau (tableau 1D, déclaration de tableau 2D, instanciation, initialisation et utilisation)
À propos des types de données Java (en particulier des types primitifs) et des littéraux
[Java] Utilisation de final dans la déclaration de variable locale
[Java] Différence entre "variable finale" et "objet immuable"
Getter et Setter (Java)
[Java] Types de commentaires et comment les rédiger
[Java] Thread et exécutable
Installation et initialisation de Docker
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
[Java Silver] À propos de l'initialisation
Comment utiliser les variables Java
Java - Sérialisation et désérialisation
[Java] Arguments et paramètres
A propos du type de données de base Java et de la mémoire du type de référence
J'ai résumé les types et les bases des exceptions Java
timedatectl et Java TimeZone
[Java] Branchement et répétition
[Java] Principaux types de données
Comparaison équivalente de la classe wrapper Java et du type primitif
java (classe et instance)
Types de données de base Java
[Java] Surcharge et remplacement
Attribuer des expressions lambda Java8 aux variables et les réutiliser
[Java] Différence entre l’affectation d’une variable de type de base et l’affectation d’une variable de type de référence
Etudier Java # 2 (\ marque et opérateur)
[Java] Mémo de nom du nom de variable
Java version 8 et fonctionnalités ultérieures
[Java] Différence entre == et égal
[Java] Zone de pile et zone statique
[Java] Classe générique et méthode générique
Programmation Java (variables et données)
Cryptage et décryptage Java PDF
Java et Iterator Part 1 External Iterator Edition
À propos des types de chargeur de classe Java
Instructions Java if et switch
J'ai étudié les types primitifs Java
Définition et instanciation de classe Java
Apache Hadoop et Java 9 (partie 1)
[Java] À propos de String et StringBuilder