GNU-Bearbeiter für Java

Der GNU-Bearbeiter für Java (GCJ oder gcj) ist ein Bearbeiter der kostenlosen Software für die javanische Programmiersprache und einen Teil der GNU-Bearbeiter-Sammlung.

GCJ kann javanischen Quellcode entweder nach Java Virtuelle Maschine bytecode, oder nach direkt zum Maschinencode für einige mehrerer Zentraleinheitsarchitekturen kompilieren. Es kann auch Klassendateien kompilieren, die bytecode oder komplette GLÄSER enthalten, die solche Dateien in den Maschinencode enthalten.

Geschichte

Fast alle durch gcj verwendeten Laufzeitbibliotheken kommen aus dem GNU Classpath Projekt (aber vergleichen die Bibliothek). Bezüglich gcj 4.3 integriert gcj mit ecj, dem Eklipse-Bearbeiter für Java.

viel Arbeit ist zum Bekommen des GNUS in Classpath hineingegangen, um Javas zwei grafische APIs zu unterstützen: AWT und Schwingen. Die Arbeit am Unterstützen von AWT ist andauernd, nach dem die Unterstützung für das Schwingen folgen wird.

es hat keine neuen Entwicklungen gegeben hat von gcj bekannt gegeben. Das Produkt ist zurzeit in der Wartungsweise.

Leistung

Javanischer Code, der in den Maschinencode durch GCJ kompiliert ist, sollte schnellere Anlauf-Zeit haben als der gleichwertige in einem JVM gestartete bytecode.

Jedoch, nach dem Anlauf, führt javanischer durch GCJ kompilierter Code etwas schneller nicht notwendigerweise durch als durch einen modernen JIT-ermöglichten JVM durchgeführter bytecode. Das ist wahr, selbst wenn GCJ mit fortgeschrittenen Optimierungsoptionen wie-fno-bounds-check-o3-mfpmath=sse-msse2 - ffast-Mathematik-march=native angerufen wird; in diesem Fall kann das kompilierte Programm oder kann JVM Leistung abhängig von den durch den fraglichen Code durchgeführten Operationen nicht übertreffen.

CNI (kompilierte heimische Schnittstelle)

Der CNI (Kompilierte heimische Schnittstelle, vorher Cygnus Eingeborener-Schnittstelle), ein Softwarefachwerk für den gcj, erlaubt javanischem Code, zu nennen und durch heimische Anwendungen (Programme genannt zu werden, die zu einer Hardware und Betriebssystem-Plattform spezifisch sind) und Bibliotheken, die in C ++ geschrieben sind.

CNI ähnelt nah dem Fachwerk von Java Native Interface (JNI), das als Standard mit dem verschiedenen Java virtuelle Maschinen kommt. Jedoch fordern die CNI Autoren verschiedene Vorteile gegenüber JNI:

CNI hängt von javanischen Klassen ab, die als C ++ Klassen erscheinen. Zum Beispiel,

in Anbetracht einer javanischen Klasse,

öffentliche Interne Klassennummer

{\

öffentliche interne Nummer i;

öffentliche Interne Nummer (interne Nummer i) {this.i = ich; }\

öffentliche statische Int Null = neue Interne Nummer (0);

}\

</Quelle>

man kann die Klasse so verwenden:

  1. einschließen
einschließen

Interne Nummer *mult (Interne Nummer *p, interne Nummer k)

{\

wenn (k == 0)

interne

Rücknummer:: Null;//Statischer Mitglied-Zugang.

geben Sie neue Interne Nummer zurück (p-> ich * k);

}\</Quelle>

Siehe auch

Links


Stroh von Jack (Begriffserklärung) / Änderung
Impressum & Datenschutz