Java Primer Series (Variationen und Typen)

Einführung

Hallo. Dieser Artikel ist ein zusammenfassender Artikel über Variablen und Typen für "Personen, die Java starten" und "Personen, die nach langer Zeit neu in Java sind".

Es erklärt nicht die Programmierung selbst, wie z. B. welche Variablen es sind, daher ist es möglicherweise nicht für Anfänger geeignet.

Die folgenden Artikel werden als einführende Java-Reihe vorbereitet.

--Variationen und Typen ← Jetzt hier

Über den Typ

Obwohl das Konzept der Typinferenz von JDK10 eingeführt wurde Ich denke, Java ist im Grunde eine statisch typisierte Sprache Beschreibt den Typ.

Die Formen sind grob geteilt Es gibt zwei Typen: Basistyp (primitiver Typ) und Referenztyp (Klassentyp).

Grundtyp (primitiver Typ)

Es gibt vier Typen: Ganzzahl, Minderheitsbewertung, Boolescher Wert und Zeichen. Im Gegensatz zur Sprache c gibt es kein vorzeichenloses (kein Minus).

Ganzzahliger Typ

Je nach Größe gibt es vier Typen.

Schimmel Größe Wertebereich
byte 8 Bits -128〜127
short 16 Bit -32768~32767
int 32 Bit -2147483648~2147483647
long 64-Bit -9223372036854775808~9223372036854775807

Mein Eindruck ist

Verwenden Sie grundsätzlich int, und wenn die Größe nicht ausreicht, verwenden Sie long. Byte wird als Array-Typ verwendet, wenn Binärdaten aus einer Datei oder dergleichen gelesen werden. Ich benutze Short überhaupt nicht.

Es ist geworden. (Wenn jemand so etwas wie Best Practice kennt, lass es mich wissen.)

Wenn der Wertebereich überschritten wird, wird der Wert invertiert.

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

Bruchart

Je nach Größe gibt es auch zwei Typen.

Schimmel Größe Wertebereich
float 32 Bit ±3.40282347E+38 ~ ±1.40239846E-45
double 64-Bit ±1.79769313486231570E+308 ~ ±4.94065645841246544E-324

Es wird verwendet, wenn Werte nach dem Dezimalpunkt behandelt werden, z. B. Division. Beim Integer-Typ wird der Teil nach dem Dezimalpunkt abgeschnitten, z. B. beim Teilen.

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

Boolescher Typ

Ein Typ, der nur wahr oder falsch enthalten kann.

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

char type

Ein Typ, der Zeichen verarbeitet. Verwenden Sie ein Array, wenn Sie es als Zeichenfolge behandeln.

char  a = 'a', b = 'b';
System.out.println(a); // ->Ausgabe als "a"
System.out.println(b); // ->Ausgabe als "b"
char[] str = {'a', 'b', 'c'};
System.out.println(str);  // ->"Abc" wird ausgegeben

Referenztyp (Klassentyp)

Der Variablentyp, in dem eine Instanz (Entität) einer Klasse gespeichert ist, wird als Referenztyp (Klassentyp) bezeichnet.

Was wird als Referenztyp bezeichnet Es enthält nicht den Wert selbst, sondern den Ort, an dem sich der Wert befindet.

Das Kopieren einer Referenztypvariablen bedeutet also Anstatt den Wert selbst zu kopieren Bitte beachten Sie, dass dies bedeutet, dass die Informationen des Ortes kopiert werden, an dem der Wert platziert wird.

Das folgende Programm kopiert die Referenztypvariable und dann Der Wert wird mithilfe der Kopierzielvariablen neu geschrieben.

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); // ->Ausgabe als "5"
		System.out.println(y.value); // ->Ausgabe als "5"

		x = y;
		x.value = 10;
		System.out.println(x.value); // ->Ausgabe als "10"
		System.out.println(y.value); // ->Ausgabe als "10"
	}
}

x = y; Was also in die Variable x kopiert wurde, ist die "Information, wo der Wert platziert wird" in der Variablen y, also Die Variablen x und y enthalten Informationen an derselben Stelle. Deshalb, Wenn Sie den Wert mit der Variablen x neu schreiben, wird auch der Wert geändert, auf den die Variable y zeigt.

Der "Ort" hier ist ein Ort im Speicherplatz. Es ist ein Bild ähnlich einem C-Sprachzeiger (obwohl es nicht genau dasselbe ist)

Wrapper-Klasse

Java hat standardmäßig verschiedene Klassen, Es gibt eine Wrapper-Klasse, die den obigen Basistyp (primitiven Typ) umschließt.

Zum Beispiel Integer-Klasse und String-Klasse.

Die Integer-Klasse ist eine Klasse, die Zahlen verarbeitet Wie beim Typ int können Sie die Zuweisung, die Operation mit vier Regeln, die Vergleichsoperation usw. verwenden.

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" wird ausgegeben
    System.out.println(a == b); // ->"False" wird ausgegeben
    System.out.println(d); // ->"3" wird ausgegeben
  }
}

Die String-Klasse ist eine Klasse, die Strings verarbeitet Verschiedene Funktionen für Zeichenketten wie das Kombinieren und Vergleichen von Zeichen sind implementiert.


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" wird ausgegeben
    System.out.println(c.length());  // ->"2" wird ausgegeben
    System.out.println(a.equals(b)); // ->"False" wird ausgegeben
    System.out.println(b.equals(d)); // ->"True" wird ausgegeben
  }
}
class Main {
  public static void main(String[] args) {
    Integer i = 5;
    Integer j = 6;
    System.out.println(i);  // ->"5" wird ausgegeben
    System.out.println(j);  // ->"6" wird ausgegeben
    j = i;
    j = 7;
    System.out.println(i);  // ->"5" wird ausgegeben
    System.out.println(j);  // ->"7" wird ausgegeben

    String a = "a";
    String b = "b";
    System.out.println(a);  // ->Ausgabe als "a"
    System.out.println(b);  // ->Ausgabe als "b"
    b = a;
    b = "B";
    System.out.println(a);  // ->Ausgabe als "a"
    System.out.println(b);  // ->Ausgabe als "B"
  }
}

Deklaration von Variablen

In Java wird es in Form von "Typname Variablenname" deklariert.

Lassen Sie zwischen dem Typnamen und dem Variablennamen ein Leerzeichen oder ein Tabulatorzeichen.

Sie können Variablen desselben Typs auch durch Kommas getrennt deklarieren.

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

In Bezug auf Arrays plane ich, einen separaten Artikel mit dem Titel "Manipulieren von Arrays" zu schreiben.

Variable Initialisierung

In Java können Variablen in Form von "Typname Variablenname = Wert" initialisiert werden.

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

Wo die Variable deklariert ist

Abhängig von der Programmiersprache Es kann eine Einschränkung geben, dass sich die Variablendeklaration nur am Anfang des Verarbeitungsblocks befindet. Sie können es überall in Java deklarieren.

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);
  }
}

Variablennamen

Zeichen, die verwendet werden können

Alphabete, Zahlen, Unterstriche, $ Es wird sein.

Groß- und Kleinschreibung beachten

Groß- und Kleinschreibung werden als unterschiedliche Zeichen behandelt.

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

Zahlen können nicht als Anfangsbuchstabe verwendet werden

Fügen Sie am Anfang ein Alphabet hinzu. 変数名の先頭に数字はダメ.png

Reservierte Wörter und vorbereitete Konstanten können nicht verwendet werden

Nach einer Reservierung sind dies Schlüsselwörter zum Schreiben von Java-Programmen wie if und class. Weitere Informationen finden Sie in der Oracle-Dokumentation (https://docs.oracle.com/javase/specs/jls/se11/html/jls-3.html#jls-3.9).

Die angegebenen Konstanten sind null, wahr, falsch. Diese können auch nicht als Variablennamen verwendet werden.

abschließend

Wie waren Javas Variablen und Typen?

Bis vor einiger Zeit Sprachen, die keine Typen schreiben, wie Ruby und Javascript Ich denke, dass das Verdienst, schnell und ohne Schimmel schreiben zu können, großartig war, aber

Vor kurzem (2020/05) denke ich, dass der Bedarf an Typen mit dem Aufkommen von Typoskripten überprüft wurde.

Ende.

Recommended Posts

Java Primer Series (Variationen und Typen)
[Java] Variablen- und Typtypen
Java für Anfänger, Variablen und Typen
Java-Programmierung (Variablen und Daten)
Java Primer Series (Typkonvertierung)
Deklaration, Initialisierung und Typen von Java-Variablen
[Java] Grundtypen und Anweisungshinweise
Grundlegende Datentypen und Referenztypen (Java)
Java-Array-Variablen sind Referenztypen
Informationen zu primitiven Java-Typen und Referenztypen
Java-Basisdatentypen und Referenztypen
[Java] Ausnahmetypen und grundlegende Verarbeitung
[Einführung in Java] Informationen zu Variablen und Typen (Variablendeklaration, Initialisierung, Datentyp)
Grundlagen der Java-Entwicklung ~ Schreiben von Programmen (Variablen und Typen) ~
[Java] Unterschiede zwischen Instanzvariablen und Klassenvariablen
Java-Programmierung (statische Klausel und "Klassenvariablen")
[Einführung in Java] Informationen zu Variablendeklarationen und -typen
[WIP] Java-Variablen
Java und JavaScript
XXE und Java
Informationen zu Java-Datentypen (insbesondere primitiven Typen) und Literalen
Vergleich zwischen Java und Swift (1) Quellcodeverwaltung / Umfang / Variablen
Getter und Setter (Java)
[Java] Arten von Kommentaren und wie man sie schreibt
[Java] Thread und ausführbar
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
printf / argument / variable / type
[Java] Unterschied zwischen statischem final und final in Mitgliedsvariablen
[Java] Verweisen Sie auf und setzen Sie private Variablen mit Reflektion
Java Review ① (Entwicklungsschritte, grundlegende Grammatik, Variablen, Datentypen)
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
Informationen zum Java-Grunddatentyp- und Referenztypspeicher
Ich habe die Typen und Grundlagen von Java-Ausnahmen zusammengefasst
timedatectl und Java TimeZone
[Java] Verzweigen und Wiederholen
[Java] Hauptdatentypen
Äquivalenter Vergleich von Java-Wrapper-Klasse und primitivem Typ
Java (Klasse und Instanz)
[Java Silver] Was sind Klassenvariablen, Instanzvariablen und lokale Variablen?
Java-Grunddatentypen
[Java] Überladen und überschreiben
[Java] Machen Sie die Variablen der erweiterten for-Anweisung und für jede Anweisung unveränderlich
Java Version 8 und neuere Funktionen
[Java] Stapelbereich und statischer Bereich
(Hinweis) Java-Klassen / Variablen / Methoden
[Java] Generics-Klasse und Generics-Methode
Java-Ver- und Entschlüsselung PDF
Java und Iterator Teil 1 Externe Iterator Edition
Informationen zu Java Class Loader-Typen
Java if- und switch-Anweisungen
Ich habe Java-Primitivtypen untersucht
Der Java Primer hat die Blockierung bestanden
Definition und Instanziierung von Java-Klassen
Unterschied zwischen Variablen und Instanzvariablen
Apache Hadoop und Java 9 (Teil 1)
[Java] Über String und StringBuilder
[Java] HashCode und gleich Überschreibung