Java Language Specification

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 5. Mai 2005 um 14:24 Uhr durch Messi (Diskussion | Beiträge) (Operationen mit zwei Operanden: XOR). 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 (Simpler Variablentyp)
  • break (aktuellen Schleifen-/Funktionsdurchlauf beenden)
  • byte (Simpler Variablentyp)
  • case (Einleitung einer Mehrfachverzweigung)
  • catch
  • char (Simpler Variablentyp)
  • class
  • const
  • continue
  • default
  • do
  • double (Simpler Variablentyp)
  • else
  • extends
  • false
  • final
  • finally
  • float (Simpler Variablentyp)
  • for (Einleitung einer For-Schleife)
  • goto
  • if (Einleitung einer Verzweigung)
  • implements
  • import
  • instanceof
  • int (Simpler Variablentyp)
  • interface
  • long
  • native
  • new
  • null
  • package
  • private
  • protected
  • public
  • return
  • short (Simpler Variablentyp)
  • static
  • strictfp
  • super (übergeordnete Klasse)
  • switch
  • synchronized
  • this (aktuelles Objekt)
  • throw
  • throws
  • transient
  • true
  • try
  • void
  • volatile
  • while

Quelle: [[1]]

Operatoren

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

Operationen mit zwei Operanden

  +   a) Addition, b) Verkettung von Strings
  -   Subtraktion
  *   Multiplikation
  /   Division
  &   bitweise UND-Verknüpfung  
  |   bitweise ODER-Verknüpfung
  ^   bitweise Exklusiv-ODER-Verknüpfung (XOR)
  >>  Verschiebung des Bitmusters in Richtung des niederwertigsten Bit, z.B. a >> 3
  <<  Verschiebung des Bitmusters in Richtung des höchstwertigsten Bit, z.B. b << 4
  &&  logische UND-Verknüpfung
  ||  logische ODER-Verknüpfung
  ==  logische Überprüfung der Gleichheit
  !=  logische Überprüfung der Ungleichheit
  <   logische Überprüfung ob kleiner als
  <=  logische Überprüfung ob kleiner oder gleich
  >   logische Überprüfung ob größer als
  >=  logische Ü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