Skip to Content

1.11 Antworten

1.11.1 Javakommandos des JDK

  • Mit welchem Befehl übersetzt man ein Javaquellprogramm in eine Javabinärdatei? javac
    • Welche Datei ensteht beim Übersetzen einer Datei mit dem Namen Fahrzeug.java die eine Klasse Fahrzeug enhält? Fahrzeug.class
  • Mit welchem Befehl kann man Javabinärdateien ausführen? java
  • Eine Datei Test.java enthält eine Klasse Test. Mit welcher Befehlsequenz übersetzen Sie die Javaquelldatei Test.java und führen die Klasse Test dann aus?
    • javac Test.java
    • java Test
  • Nennen Sie mindestens drei Javabefehle die nur das JDK enthält nicht aber das JRE
    • javac
    • javadoc
    • javap
    • javah
  • Welcher Typ von Dateien wird vom Befehl javadoc erzeugt?
    • javadoc erzeugt Dokumentationsdateien im html Format. Die Dateiendung ist daher .html

1.11.2 Zuweisungen

  • Welche vier Syntaxkomponenten enhält eine Anweisung?
    1. Variable
    2. Zuweisungsoperator =
    3. Term
    4. Semikolon
  • In welcher Reihenfolge stehen die vier Syntaxkomponenten?
    • siehe vorherige Antwort
  • Welche der folgenden Anweisungen sind erlaubt?
a  = 4;     // korrekt
a  = a;     // korrekt
a  = b      // falsch. Das Semikolon fehlt
18 = c;     // falsch. 18 ist kein gültiger Bezeichner. c = 18; wäre erlaubt (und sinnvoll)
c = 18 + a; // korrekt
d = 18 - c; // korrekt
a,b = 18;   // falsch. Man kann nur einer Variablen gleichzeitig einen Wert zuweisen

1.11.3 Zuweisungsbeispiel

Welche Belegung haben die Variablen x,y und z wenn alle Zuweisungen ausgeführt?

Hinweis: Es wurden nur geänderte Werte eingetragen. Ist ein Feld leer, so gilt der früherer Wert weiter oben

Prozessorschritte x y z

x = 2; y = 3; z = 4;

2

3

4

x = 5;

5

   

x = 2 * x;

10    

y= z * x;

 

40

 

z= 18

 

 

18

Endergebnis 10 40 18

 

1.11.4 Welche C-Funktion muss implementiert werden?

Laden Sie die Binärdatei auf Ihren Rechner.

Der folgende Befehl disassembliert die Klasse und erzeugt eine Klassenbeschreibung mit allen öffentlichen Komponenten der Klasse.

Rufen Sie javap in dem Verzeichniss aus in dem die Datei Raetsel.class steht:

pegasus:classes sschneid$ javap Raetsel
Compiled from "Raetsel.java"
public class Raetsel extends java.lang.Object{
public int variable1;
public float variable2;
public java.lang.String variable3;
public Raetsel();
public void testMethode();
public native void methodeInC();
}

Der notwendige C-Prototyp Raetsel.h wird mit dem Kommando javah erzeugt. Man muss das Kommando im Verzeichnis aufrufen in dem die Datei Raetsel.class steht:

javah Raetsel

Hierdurch wird eine Datei Raetsel.h erzeugt:

* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Raetsel */

#ifndef _Included_Raetsel
#define _Included_Raetsel
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Raetsel
* Method: methodeInC
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_Raetsel_methodeInC
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

Der Name der zu implementierenden Funktion ist fettgedruckt. Alle anderen Zeilen bestehen aus Direktiven für die Programmiersprachen C, C++ und aus Kommentaren.

 



book | by Dr. Radut