Java Language Specification
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)
- cast
- 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)
- future
- generic
- goto
- if (Einleitung einer Verzweigung)
- implements
- import
- inner
- instanceof
- int (Simpler Variablentyp)
- interface
- long
- native
- new
- null
- operator
- outer
- package
- private
- protected
- public
- rest
- return
- short (Simpler Variablentyp)
- static
- super (übergeordnete Klasse)
- switch
- synchronized
- this (aktuelles Objekt)
- throw
- throws
- transient
- true
- try
- var
- 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 >> 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;
Funktionsaufruf
Klasse.Funktionsname(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
- Online Manual (englisch)