Ich habe gerade angefangen, Java zu lernen und möchte den Unterschied zu anderen Sprachen verstehen.
** Klicken Sie hier, um eine Übersicht und einen Artikel zum Aufbau der Umgebung zu erhalten **
Ich möchte das, was ich in Java gelernt habe, in mehrere Artikel aufteilen und ausgeben.
Nächstes Mal werde ich [Variationen und Typen] überprüfen (https://qiita.com/morioheisei/items/3d27e82d6cd88068dded). Dieses Mal werde ich ungefähr zwei Punkte überprüfen, die sich zwischen Java und anderen Sprachen unterscheiden.
Computer können nur Maschinenwörter ausführen und verstehen, die mit Nullen und Einsen geschrieben wurden. In einer Programmiersprache geschriebener Quellcode muss ebenfalls in eine Maschinensprache konvertiert (übersetzt) werden.
Wird als "Dolmetschersprache" bezeichnet. Quelldateien in Programmiersprache geschrieben, Es wird ausgeführt, während Zeile für Zeile konvertiert wird, damit der Computer es erkennen kann.
Schreiben Sie ein Programm ↓ (übersetzt in Maschinensprache) Ausführen ↓ Schreiben Sie ein Programm ↓ (übersetzt in Maschinensprache) Ausführen
Hello.php
<?php
echo "Hello World";
?>
Terminal
$ php Hello.php
Hallo Welt ← Ausgeführt und ausgegeben!
Java Wird als "Compilersprache" bezeichnet. Alle in der Programmiersprache geschriebenen Quelldateien werden einmal in die Maschinensprache konvertiert (übersetzt), um eine weitere Datei (Klassendatei) zu generieren. Die Ausführung erfolgt gemeinsam durch JVM (Java Virtual Machine).
Schreiben Sie ein Programm ↓ Kompilieren (in Maschinensprache übersetzen) Klassendatei generieren ↓ Ausführen
Hello.java
class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Erstellen Sie eine Klassendatei, indem Sie die Quelldatei mit dem Befehl javac kompilieren.
Terminal
$ javac Hello.java
$ ls
Hello.java Hello.Klasse ← Erstellt!
Führen Sie die Klassendatei mit dem Befehl java aus und geben Sie Hello World aus. Fügen Sie nicht die Erweiterung `.class hinzu. ``
Terminal
$ java Hello
Hallo Welt ← Ausgabe!
** Dolmetschersprache **
Wenn der Computer ausgeführt wird, wird die in der Quelldatei geschriebene Programmiersprache in die Maschinensprache konvertiert und ausgeführt.
Da die Sprache des Interpreter-Typs nicht einzeln kompiliert werden muss, kann eine mühsame Prozedur weggelassen werden.
** Compilersprache **
Bereiten Sie eine kompilierte Version (Klassendatei) der Quelldatei vor, die in der Programmiersprache geschrieben ist, damit sie in der Maschinensprache gelesen werden kann. Es ist also keine Kompilierung erforderlich, wenn der Computer den Vorgang ausführt.
Die Geschwindigkeit der Computerverarbeitung, eine Sprache vom Typ Compiler, in der der gesamte Code einmal in die Maschinensprache übersetzt wurde, ist schneller.
Wird als "dynamisch typisierte Sprache" bezeichnet. Es wird nicht entschieden, welche Art von Wert in den Variablennamen, das Funktionsargument oder den Rückgabewert aufgenommen wird. (Kann ohne Entscheidung deklariert werden)
test.js
let str = "Guten Morgen";
console.log(str); //Guten Morgen
str = 2020;
console.log(str); // 2020
Ursprünglich war es der Variablenname "str" für die Eingabe einer Zeichenfolge, aber Sie können auch den numerischen Wert 2020 ersetzen.
test.js
//Eine Funktion zum Hinzufügen von Zahlen und zum Zurückgeben eines Ergebnisses
function sumNumber(a, b) {
return a + b;
}
console.log(sumNumber(1, 1)); // 2
console.log(sumNumber("Hello", "World")); // HelloWorld
Ursprünglich war der Funktionsname "sumNumber", was ich als Ergebnis des Hinzufügens von zwei Zahlen zurückgeben wollte. Sie können auch die Zeichenfolgen Hello und World hinzufügen und zurückgeben.
Es gibt einen Nachteil, dass Sie es unbeabsichtigt verwenden können.
Java Wird als "statisch typisierte Sprache" bezeichnet. Deklarieren Sie den Typ explizit im Variablennamen, Funktionsargument oder Rückgabewert. Es kann nicht mit anderen Daten als dem deklarierten Typ behandelt werden.
Ich werde den Code auf die gleiche Weise wie zuvor schreiben.
Main.java
class Main {
public static void main(String[] args) {
String str = "Guten Morgen";
System.out.println(str); //Guten Morgen
str = 2020; // Type mismatch: cannot convert from int to String
System.out.println(str);
}
}
Ein Fehler tritt auf, wenn Sie versuchen, den numerischen Wert 2020 durch den Variablennamen "str" zu ersetzen, der Zeichentypdaten enthält. Korrekt...
Main.java
class Main {
public static void main(String[] args) {
String str = "Guten Morgen";
System.out.println(str); //Guten Morgen
//Ersetzen Sie str durch die Zeichenkette "Guten Abend"
str = "Guten Abend";
System.out.println(str); //Guten Abend
//Ersetzen Sie 2020 durch den als int-Typ angegebenen Variablennamen "year"
int year = 2020;
System.out.println(year); // 2020
}
}
Gleiches gilt für Funktionen.
Main.java
class Main {
public static void main(String[] args) {
System.out.println(sumNumber(1, 1)); // 2
System.out.println(sumNumber("Hello", "World")); // The method sumNumber(int, int) in the type Main is not applicable for the arguments (String, String)
}
//Sowohl das erste als auch das zweite Argument erhalten den Typ int, und der Rückgabewert definiert auch den Funktionsnamen des int-Typs "sumNumber".
public static int sumNumber(int a, int b) {
return a + b;
}
}
In JavaScript war es in Ordnung, entweder Buchstaben oder Zahlen zu übergeben, aber in Java wird eine Fehlermeldung angezeigt. Dies liegt daran, dass die Funktion Daten vom Typ int empfängt, jedoch eine Zeichenfolge übergibt.
Es kann wie vom Programmersteller beabsichtigt ausgeführt werden, und es besteht der Vorteil, dass ein auftretender Fehler bemerkt werden kann, bevor das Programm ausgeführt wird.
Ich habe bisher nur dynamisch typisierte Sprachen gelernt, daher war ich überrascht, den Datentyp jedes Mal anzugeben, wenn ich eine Variable deklariere. Als nächstes werden wir uns mit Variablen und Typen befassen (https://qiita.com/morioheisei/items/3d27e82d6cd88068dded).
Recommended Posts