Java Language Specification

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 5. Mai 2005 um 16:41 Uhr durch Messi (Diskussion | Beiträge) (Operationen mit zwei Operanden: weitere Operatoren. Zuweisungen fehlen noch). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Die Java Language Specification (deutsch Spezifikation der Sprache Java) ist die Spezifikation der Semantik und Grammatik der Programmiersprache Java. Aktuell ist sie in der zweiten Version verfügbar.

Elemente der Sprache

Bezeichner

Bezeichner sind vom Autor vergebene Namen für Klassen, Objekte, Variablen oder Funktionen.

Hinweise zur Vergabe eigener Bezeichner:

  • Man darf alle Zeichen bis auf Sonderzeichen verwenden, auch äöü (nicht zu empfehlen).
  • Das erste Zeichen muss ein Buchstabe sein, ab dem zweiten Zeichen darf man auch Ziffern verwenden.
  • Der Bezeichner als Ganzes darf nicht mit einem Schlüsselwort identisch sein.
  • Zwischen Groß- und Kleinschreibung wird unterschieden.

Schlüsselwörter

Von den Schöpfern von Java vergebene Wörter, die zur Sprache gehören. Dürfen nicht als Bezeichner verwendet werden.

  • abstract
  • boolean (Primitiver Datentyp)
  • break (aktuellen Schleifen-/Funktionsdurchlauf beenden)
  • byte (Primitiver Datentyp)
  • case (Einleitung einer Mehrfachverzweigung)
  • catch
  • char (Primitiver Datentyp)
  • class
  • const
  • continue
  • default
  • do
  • double (Primitiver Datentyp)
  • else
  • extends
  • false (Literal)
  • final
  • finally
  • float (Primitiver Datentyp)
  • for (Einleitung einer For-Schleife)
  • goto
  • if (Einleitung einer Verzweigung)
  • implements
  • import
  • instanceof
  • int (Primitiver Datentyp)
  • interface
  • long (Primitiver Datentyp)
  • native
  • new
  • null (Literal)
  • package
  • private
  • protected
  • public
  • return
  • short (Primitiver Datentyp)
  • static
  • strictfp
  • super (übergeordnete Klasse)
  • switch
  • synchronized
  • this (aktuelles Objekt)
  • throw
  • throws
  • transient
  • true (Literal)
  • try
  • void
  • volatile
  • while

Quelle: [[1]]

Operatoren

Zeichen oder Zeichenkombinationen, die eine bestimmte Operation durchführen.

Operationen mit zwei Operanden

  +   a) Addition, b) Verkettung von Strings
  -   Subtraktion
  *   Multiplikation
  /   Division
  %   Modulo
  &   bitweise UND-Verknüpfung  
  |   bitweise ODER-Verknüpfung
  ^   bitweise Exklusiv-ODER-Verknüpfung (XOR)
  <<  Verschiebung des Bitmusters in Richtung des höchstwertigsten Bit, z.B. b << 4
  >>  Verschiebung des Bitmusters in Richtung des niederwertigsten Bit, z.B. a >> 3
  >>> Verschiebung des Bitmusters inkl. des Vorzeichens, z.B. -1 >>> 1 ist 0x7FFFFFFF
  &&  logische UND-Verknüpfung
  ||  logische ODER-Verknüpfung
  ==  Überprüfung der Gleichheit
  !=  Überprüfung der Ungleichheit
  <   Überprüfung ob kleiner als
  <=  Überprüfung ob kleiner oder gleich
  >   Überprüfung ob größer als
  >=  Überprüfung ob größer oder gleich
  instanceof  Überprüfung ob es sich um eine Instanz (ein Exemplar) einer bestimmten Klasse handelt

Operationen mit einem Operanden

  ~   Umkehrung des Bitmusters, z.B. ~c
  !   logische Umkehrung, z.B. if(!((wind==0)||(tuer==zu))) tuerzu();

Sprachstrukturen

Die in Java verwendete Syntax ist relativ einfach und übersichtlich:

Kommentare

Mit Hilfe von Kommentaren kann der Programmierer Hinweise im Quelltext hinterlassen, erklären oder einen Teil des Programmes nicht ausführen lassen. Kommentare habe keinerlei Einfluss auf die Performance oder die Größe des Programmes, da sie vor dem Übersetzen in den Java Bytecode entfernt werden.

    // Ab den beiden Slash bis zum Ende der Zeile
/* Ab dem Slash, Stern bis zu dem Stern, Slash */

Anweisungen

Jede Anweisung endet mit einem Semikolon, Zeilenumbrüche und Leerzeichen werden nicht berücksichtigt. In einer Zeile können beliebig viele Anweisungen stehen.

Zuweisung

    a = 2 + 3;

Methodenaufruf

    Klasse.Methodenname(Parameter1, ParameterN);
Beispiel: 
    System.out.println("Hallo Welt");

Verzweigungen

Eine oder mehrere Anweisungen werden nur unter einer bestimmten Bedingung ausgeführt.
Expression steht für die Bedingung. Wird beschrieben in Form eines Ausdrucks, der entweder wahr oder falsch ist.
Statement steht für die Anweisung oder den Anweisungsblock: ein Anweisungsblock beginnt mit { und endet mit } und kann beliebig viele Anweisungen enthalten.

IfThenStatement:
    if ( Expression ) Statement
IfThenElseStatement: if ( Expression ) Statement else Statement

Für den Ausdruck IfThenStatement kann die darunter stehende Zeile verwendet werden. Sollen Alternativen angeboten werden, werden die Zeilen einfach untereinander aufgelistet:

ArgumentList:
Argument
ArgumentList, Argument

Optionale Angaben werden mit einem tiefergestellten opt gekennzeichnet:

Schleifen

Einfache Schleife:
    while ( Expression ) Statement
Beispiel:
    while ( zaehler <= 36 ) {
       System.out.print(" " + zaehler);
    }
For Schleife:
    for ( ForInitopt ; Expressionopt ; ForUpdateopt ) Statement

welches in allen möglichen Variationen ausgeschrieben so aussieht:

ForStatement:
for ( ; ; ) ; for ( ; ; ) Statement for ( ; ; ForUpdate ) Statement for ( ; Expression ; ) Statement for ( ; Expression ; ForUpdate ) Statement for ( ForInit ; ; ) Statement for ( ForInit ; ; ForUpdate ) Statement for ( ForInit ; Expression ; ) Statement for ( ForInit ; Expression ; ForUpdate ) Statement

Beispiele

Der typische, vereinfachte Aufbau mit kleinen Beispielen:

 ImportDeclaration: 
import Identifier { . Identifier } [ . * ] ;

bedeutet nichts anderes als:

 import java.util.*;

Ein weiteres Beispiel:

 ClassDeclaration:
ClassModifiersopt class Identifier Superopt Interfacesopt ClassBody

steht für

 public class Empty{
   }

Weblinks