Série Java Primer (variations et types)

introduction

Bonjour. Cet article est un article récapitulatif sur les variables et les types pour "les personnes qui commencent Java" et "les personnes qui ne connaissent pas Java après une longue période".

Il n'explique pas la programmation elle-même, comme ce que sont les variables, il peut donc ne pas convenir aux débutants.

Les articles suivants sont en cours de préparation en tant que série d’introduction à Java.

--Variations et types ← Maintenant ici

À propos du type

Bien que le concept d'inférence de type ait été introduit à partir de JDK10 Je pense que Java est fondamentalement un langage typé statiquement Décrit le type.

Les moules sont grossièrement divisés Il existe deux types: le type de base (type primitif) et le type de référence (type de classe).

Type de base (type primitif)

Il existe quatre types: entier, score minoritaire, booléen et caractère. Contrairement au langage C, il n'y a pas de non signé (pas de moins).

Type entier

Il existe quatre types selon la taille.

Moule Taille Gamme de valeurs
byte 8 bits -128〜127
short 16 bits -32768~32767
int 32 bits -2147483648~2147483647
long 64 bits -9223372036854775808~9223372036854775807

Mon impression est

En gros, utilisez int, et si la taille n'est pas suffisante, utilisez long. byte est utilisé comme type de tableau lors de la lecture de données binaires à partir d'un fichier ou autre. Je n'utilise pas du tout de short.

Il est devenu. (Si quelqu'un connaît quelque chose comme les meilleures pratiques, merci de me le faire savoir)

Si la plage de valeurs est dépassée, la valeur sera inversée.

int test = 2147483647;
System.out.println(test); // -> 2147483647
test++;
System.out.println(test); // -> -2147483648
test--;
System.out.println(test); // -> 2147483647

Type fractionnaire

Il existe également deux types en fonction de la taille.

Moule Taille Gamme de valeurs
float 32 bits ±3.40282347E+38 ~ ±1.40239846E-45
double 64 bits ±1.79769313486231570E+308 ~ ±4.94065645841246544E-324

Il est utilisé lorsqu'il s'agit de valeurs après la virgule décimale, comme la division. Dans le type entier, la partie après la virgule décimale est tronquée, par exemple lors de la division.

int a = 5, b = 3, c = 0;
c = a / b;
System.out.println(c);
// ->"1" est émis.
float a = 5, b = 3, c = 0;
c = a / b;
System.out.println(c);
// -> 「1.6666666 "est émis.
double a = 5, b = 3, c = 0;
c = a / b;
System.out.println(c);
// -> 「1.6666666666666667 "est sorti.

type booléen

Un type qui ne peut contenir que vrai ou faux.

boolean a = true, b = false;
boolean c = a == b;
System.out.println(c); // ->"False" est affiché

type de caractère

Un type qui gère les caractères. Utilisez un tableau lorsque vous le manipulez comme une chaîne de caractères.

char  a = 'a', b = 'b';
System.out.println(a); // ->Sortie comme "a"
System.out.println(b); // ->Sortie comme "b"
char[] str = {'a', 'b', 'c'};
System.out.println(str);  // ->"Abc" est sorti

Type de référence (type de classe)

Le type de variable qui stocke une instance (entité) d'une classe est appelé un type de référence (type de classe).

Ce qu'on appelle un type de référence Il ne contient pas la valeur elle-même, il contient où se trouve la valeur.

Donc, copier une variable de type référence signifie Au lieu de copier la valeur elle-même Veuillez noter que cela signifie copier les informations de l'endroit où la valeur est placée.

Le programme ci-dessous copie la variable de type de référence puis La valeur est réécrite à l'aide de la variable de destination de copie.

public class Test {
	public int value = 0;
}
public class Main {
	public static void main(String[] args) {
		Test x = new Test();
		x.value = 5;
		Test y = new Test();
		y.value = 5;
		System.out.println(x.value); // ->Sortie comme "5"
		System.out.println(y.value); // ->Sortie comme "5"

		x = y;
		x.value = 10;
		System.out.println(x.value); // ->Sortie en tant que "10"
		System.out.println(y.value); // ->Sortie en tant que "10"
	}
}

x = y; Donc, ce qui a été copié dans la variable x est "l'information de l'endroit où la valeur est placée" dans la variable y, Les variables x et y contiennent des informations au même emplacement. Donc, Si vous réécrivez la valeur à l'aide de la variable x, la valeur pointée par la variable y sera également modifiée.

L '«emplacement» ici est un emplacement dans l'espace mémoire. C'est une image similaire à un pointeur en langage C (bien que ce ne soit pas exactement la même chose)

Classe de wrapper

Java a plusieurs classes en standard, Il existe une classe wrapper qui encapsule le type de base ci-dessus (type primitif).

Par exemple, la classe Integer et la classe String.

La classe Integer est une classe qui gère les nombres Comme pour le type int, vous pouvez utiliser l'affectation, l'opération à quatre règles, l'opération de comparaison, etc.

class Main {
  public static void main(String[] args) {
    int a = 5;
    Integer b = 3;
    int c = a * b;
    int d = b;
    System.out.println(c);  // ->"15" est sorti
    System.out.println(a == b); // ->"False" est affiché
    System.out.println(d); // ->"3" est émis
  }
}

La classe String est une classe qui gère les chaînes Diverses fonctions pour les chaînes de caractères telles que la combinaison et la comparaison de caractères sont implémentées.


class Main {
  public static void main(String[] args) {
    String a = "a";
    String b = "b";
    String c = a + b;
    String d = b;
    System.out.println(c);           // ->"Ab" est sorti
    System.out.println(c.length());  // ->"2" est émis
    System.out.println(a.equals(b)); // ->"False" est affiché
    System.out.println(b.equals(d)); // ->"True" est affiché
  }
}
class Main {
  public static void main(String[] args) {
    Integer i = 5;
    Integer j = 6;
    System.out.println(i);  // ->"5" est émis
    System.out.println(j);  // ->"6" est sorti
    j = i;
    j = 7;
    System.out.println(i);  // ->"5" est émis
    System.out.println(j);  // ->"7" est émis

    String a = "a";
    String b = "b";
    System.out.println(a);  // ->Sortie comme "a"
    System.out.println(b);  // ->Sortie comme "b"
    b = a;
    b = "B";
    System.out.println(a);  // ->Sortie comme "a"
    System.out.println(b);  // ->Sortie en tant que "B"
  }
}

Déclaration des variables

En Java, il est déclaré sous la forme de "nom de variable de type nom".

Laissez un espace ou une tabulation entre le nom du type et le nom de la variable.

Vous pouvez également déclarer des variables du même type séparées par des virgules.

int a;
int b;
int c, d, e;

En ce qui concerne les tableaux, je prévois d'écrire un article séparé intitulé "Fonctionnement des tableaux".

Initialisation variable

En Java, les variables peuvent être initialisées sous la forme de "nom de type variable nom = valeur".

int a = 5;
int b = 10;
int c = 5, d, e;

Où la variable est déclarée

En fonction du langage de programmation Il peut y avoir une restriction selon laquelle la déclaration de variable ne se trouve qu'au début du bloc de traitement, Vous pouvez le déclarer n'importe où en Java.

class Main {
  public static void main(String[] args) {
    int n = 5;
    for (int i = 0; i < 5; i++) {
      System.out.println(i);
    }

    String msg = "";
    for (int i = 0; i < 5; i++) {
      msg += i;
    }
    System.out.println(msg);
  }
}

Nom de variable

Caractères pouvant être utilisés

Alphabets, nombres, barres inférieures, $ Ce sera.

Sensible aux majuscules et minuscules

Les majuscules et les minuscules sont traitées comme des caractères différents.

class Main {
  public static void main(String[] args) {
    String name = "name";
    String Name = "Name";
    System.out.println(name + Name); // ->"Nom Nom" est sorti
  }
}

Les nombres ne peuvent pas être utilisés comme première lettre

Ajoutez un alphabet au début. 変数名の先頭に数字はダメ.png

Les mots réservés et les constantes préparées ne peuvent pas être utilisés

Après avoir effectué une réservation, ce sont des mots-clés pour écrire des programmes Java tels que if et class. Consultez la documentation Oracle (https://docs.oracle.com/javase/specs/jls/se11/html/jls-3.html#jls-3.9).

Les constantes fournies sont nulles, vraies, fausses. Ceux-ci ne peuvent pas non plus être utilisés comme noms de variables.

en conclusion

Comment étaient les variables et les types de Java?

Jusqu'à il y a quelque temps, les langages qui n'écrivaient pas de types tels que ruby et javascript Je pense que le mérite de pouvoir écrire rapidement sans moule était génial, mais

Récemment (2020/05), je pense que le besoin de types a été revu avec l'émergence des typographies.

fin.

Recommended Posts

Série Java Primer (variations et types)
[Java] Types de variables et types
Java pour les débutants, les variables et les types
Programmation Java (variables et données)
Java Primer Series (conversion de type)
Déclaration, initialisation et types de variables Java
[Java] Types de base et notes d'instructions
Types de données de base et types de référence (Java)
Les variables de tableau Java sont des types de référence
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
[Introduction à Java] À propos des variables et des types (déclaration de variable, initialisation, type de données)
Bases du développement Java ~ Comment écrire des programmes (variables et types) ~
[Java] Différences entre les variables d'instance et les variables de classe
Programmation Java (clause statique et "variables de classe")
[Introduction à Java] À propos des déclarations et des types de variables
[WIP] Variables Java
Java et JavaScript
XXE et Java
À propos des types de données Java (en particulier des types primitifs) et des littéraux
Comparaison entre Java et Swift (1) Source control / Scope / Variables
Getter et Setter (Java)
[Java] Types de commentaires et comment les rédiger
[Java] Thread et exécutable
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
printf / argument / variable / type
[Java] Différence entre statique final et final dans les variables membres
[Java] Se référer et définir des variables privées avec réflexion
Revue Java ① (étapes de développement, grammaire de base, variables, types de données)
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)
[Java Silver] Que sont les variables de classe, les variables d'instance et les variables locales?
Types de données de base Java
[Java] Surcharge et remplacement
[Java] Rendre les variables de l'instruction for étendue et de chaque instruction immuables
Java version 8 et fonctionnalités ultérieures
[Java] Zone de pile et zone statique
(Remarque) Classes / variables / méthodes Java
[Java] Classe générique et méthode générique
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
Le Java Primer a passé le blocage
Définition et instanciation de classe Java
Différence entre les variables et les variables d'instance
Apache Hadoop et Java 9 (partie 1)
[Java] À propos de String et StringBuilder
[Java] HashCode et remplacement égal