Heim >Backend-Entwicklung >Golang >Was ist der Unterschied zwischen der Go-Sprache und der Java-Sprache?

Was ist der Unterschied zwischen der Go-Sprache und der Java-Sprache?

青灯夜游
青灯夜游Original
2020-12-08 14:00:4518854Durchsuche

Unterschiede: 1. Go erlaubt keine Funktionsüberladung und muss eindeutige Namen für Methoden und Funktionen haben; Java erlaubt Funktionsüberladung. 2. Java erlaubt standardmäßig Polymorphismus, Go jedoch nicht. 3. Go-Code kann automatisch auf mehrere Kerne skaliert werden; Java ist nicht immer skalierbar genug. 4. Java unterstützt keine Mehrfachvererbung, Go unterstützt jedoch Mehrfachvererbung.

Was ist der Unterschied zwischen der Go-Sprache und der Java-Sprache?

Die Betriebsumgebung dieses Artikels: Windows 10-System, Go 1.11.2, Thinkpad T480-Computer.

Verwandte Empfehlungen: „Go-Video-Tutorial

Was ist Go-Sprache?

Go, auch bekannt als Golang, ist eine Programmiersprache. Als Open-Source-Programmiersprache erleichtert Go die Erstellung zuverlässiger, einfacher und effizienter Software.

Go ist eine typisierte, statisch kompilierte Sprache. Die Go-Sprache bietet Garbage Collection, Parallelität im CSP-Stil, Speichersicherheit und strukturelle Typisierung.

Was ist Java?

Java ist eine universelle Computerprogrammiersprache, die klassenbasiert, gleichzeitig und objektorientiert ist. Java ist speziell darauf ausgelegt, sehr wenige Implementierungsabhängigkeiten zu enthalten. Java-Anwendungen laufen auf JVM (Java Virtual Machine). Es ist heute eine der bekanntesten und bekanntesten Programmiersprachen.

Java ist eine Programmiersprache, die zur Entwicklung von Software für mehrere Plattformen verwendet wird. Der kompilierte Code oder Bytecode einer Java-Anwendung kann auf den meisten Betriebssystemen ausgeführt werden, einschließlich Linux, Mac OS und Linux. Ein Großteil der Java-Syntax ist von den Sprachen C++ und C abgeleitet.

Unterschiede zwischen Go-Sprache und Java

1. Funktionsüberladung ist in Go nicht zulässig und Methoden und Funktionen müssen eindeutige Namen haben. Java ermöglicht das Überladen von Funktionen.

2. Geschwindigkeit

go ist schneller als Java

3. Polymorphismus

Java erlaubt standardmäßig Polymorphismus. Go jedoch nicht.

Die Implementierung des Polymorphismus in Java folgt einem Prinzip: Wenn eine Objektreferenzvariable der Oberklasse auf ein Unterklassenobjekt verweist, bestimmt der Typ des referenzierten Objekts und nicht der Typ der Referenzvariablen, welche Mitgliedsmethode aufgerufen wird, aber die aufgerufene Methode muss Sie ist in der Oberklasse definiert, das heißt, die Methode wird von der Unterklasse überschrieben. Polymorphismus in Java kann durch zwei Methoden erreicht werden: vererbungsbasiert und schnittstellenbasiert.

Die Go-Sprache erlaubt im Allgemeinen keine unterschiedlichen Arten von Zuweisungen, das heißt, sie unterstützt keinen traditionellen Polymorphismus. Die Schnittstelle stellt eine Ausnahme dar und kann verschiedenen Typen zugewiesen werden. Solange ein Typ die Schnittstelle implementiert, können wir Variablen dieses Typs Variablen der Schnittstelle zuweisen.

4. Routing-Konfiguration

Die Go-Sprache verwendet das HTTP-Protokoll für die Routing-Konfiguration, während Java Akka.routing.ConsistentHashingRouter und Akka.routing.ScatterGatherFirstCompletedRouter für die Routing-Konfiguration verwendet.

5. Skalierbarkeit

Go-Code kann automatisch auf mehrere Kerne skaliert werden; Java ist jedoch nicht immer skalierbar genug.

6. Typsystem:

In JAVA gibt es zwei völlig unabhängige Typsysteme: Byte, Int, Boolean, Char, Double. Das andere ist das Objekttypsystem mit dem Objekttyp als Wurzel . Ganzzahl, HashMap usw. Wenn das Werttypsystem Objekttypreferenzen verwenden möchte, muss es eingerahmt werden. Die meisten Typen in der Go-Sprache verfügen über eine Wertesemantik, einschließlich einiger zusammengesetzter Typen wie Arrays, Strukturen usw., und diese Typen können über Methoden verfügen. Wir können jedem Typ neue Methoden hinzufügen. Gleichzeitig kann die Go-Sprache über & einen Verweis auf ein Objekt erhalten, z. B. var b=&a

7 Objektübertragung:

Objektmethoden in Java haben diese Zeigerübertragung ausgeblendet, während sie in der Go-Sprache objektorientiert sind Verwendet nur eine andere Syntax. In der Form ausgedrückt, gibt es keinen versteckten Zeiger, das heißt, das von der Methode auferlegte Ziel wird explizit übergeben und ist nicht verborgen. Darüber hinaus ist das von der Methode angewendete Ziel nicht unbedingt ein Zeiger (Java übergibt einen Zeiger auf ein Objekt. Wenn es sich um einen Zeiger handelt, muss er nicht so genannt werden).

8. Initialisierung:

In Java gibt es Standardkonstruktoren oder benutzerdefinierte Konstruktoren, die in Go nicht benötigt werden.

9. Zugänglichkeit von Mitgliedern:

In Java werden Schlüsselwörter wie private, protected, public und package zur Zugriffskontrolle verwendet. Wenn Sie möchten, dass ein Symbol von anderen Paketen aus zugänglich ist, müssen Sie das Symbol beginnend mit einem Großbuchstaben definieren. Auf Symbole, die mit einem Kleinbuchstaben beginnen, kann nur innerhalb des Pakets zugegriffen werden.

10. Vererbung:

Die Vererbung in Java erfolgt über das Schlüsselwort „extens“ und unterstützt keine Mehrfachvererbung. Die Vererbung in der Go-Sprache wird durch anonyme Zusammensetzung abgeschlossen: Die Basisklasse wird in Form von Struct definiert, und die Unterklasse muss nur die Basisklasse als Mitglied in die Definition der Unterklasse einfügen, und das Speicherlayout kann durch Anpassen geändert werden die Position der Basisklassenmitglieder, die Mehrfachvererbung unterstützen.

11. Schnittstelle:

Schnittstellen existieren in verschiedenen Komponenten und sind obligatorisch. Die Klasse muss deklarieren, dass sie eine bestimmte Schnittstelle implementiert und von der Schnittstelle erben muss. Selbst wenn zwei identische Schnittstellen, aber nur unterschiedliche Namen vorhanden sind, kann die Implementierung der Schnittstelle durch die Klasse nur anhand der Tatsache bestimmt werden, ob die von der Klasse deklarierte Implementierungsschnittstelle die Schnittstelle enthält, die als „aufdringliche“ Schnittstelle bezeichnet wird.

Die GO-Sprache verwendet eine nicht aufdringliche Schnittstelle. Eine Klasse muss nur alle für die Schnittstelle erforderlichen Funktionen implementieren. Dann sagen wir, dass die Klasse die Schnittstelle implementiert. Die GO-Sprache kann Schnittstellenabfragen (ob das Objekt, auf das die Schnittstelle zeigt, eine andere Schnittstelle implementiert), Typabfragen usw. über die Schnittstelle durchführen.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmierkurse! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen der Go-Sprache und der Java-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn