Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
software:java:start [2010-10-15 14:34] zueger1software:java:start [2013-06-21 13:09] zueger1
Zeile 1: Zeile 1:
 ====== Java ====== ====== Java ======
-{{  .:java-logo.png?120px&nolink|Java-Logo}}+ 
 +<box 30% right green | QuickLinks> 
 +  * [[software:programmierrichtlinien:java | Programmierrichtlinien]] 
 +  * [[http://download.oracle.com/javase/6/docs/api/ | Java-API Beschreibung]] 
 +  * [[software:eclipse:java_projekt_anlegen | Hello World in Java mit Eclipse]] 
 +</box> 
 **Java** ist eine objektorientierte Programmiersprache welche in den 90iger-Jahren von der Firma Sun Microsystems entworfern wurde. Sie ist Bestandteil der Java-Technologie und wird an der NTB als primäre Programmiersprache in der Lehre verwendet. **Java** ist eine objektorientierte Programmiersprache welche in den 90iger-Jahren von der Firma Sun Microsystems entworfern wurde. Sie ist Bestandteil der Java-Technologie und wird an der NTB als primäre Programmiersprache in der Lehre verwendet.
  
 Java-Programme werden üblicherweise nicht in Maschinen- sondern Bytecode übersetzt, welcher anschliessend in einer speziellen Umgebung - der //Java Runtime Environment// oder //Java Platform// - ausgeführt wird. Dabei wird der Bytecode von der //Java Virtual Machine// interpretiert und bei bedarf kompiliert (Just-in-time-Kompilierung). Dadurch sind Java-Anwendungen plattformunabhängig und laufen somit ohne Anpassungen auf verschiedenen Computerarchitekturen und Betriebssystemen, sofern dafür eine Java-Laufzeitumgebung existiert. Sun bietet Laufzeitumgebungen für Windows (x86-32), Linux (x86-32 und x86-64) sowie Solaris (x86-32, x86-34, SPARC und SPARC64) an. Für weitere Plattformen gibt es Java-Umgebungen von anderen Herstellern, wie z.B. von Apple für Mac OS X oder IBM für AIX, Linux und Windows. Java-Programme werden üblicherweise nicht in Maschinen- sondern Bytecode übersetzt, welcher anschliessend in einer speziellen Umgebung - der //Java Runtime Environment// oder //Java Platform// - ausgeführt wird. Dabei wird der Bytecode von der //Java Virtual Machine// interpretiert und bei bedarf kompiliert (Just-in-time-Kompilierung). Dadurch sind Java-Anwendungen plattformunabhängig und laufen somit ohne Anpassungen auf verschiedenen Computerarchitekturen und Betriebssystemen, sofern dafür eine Java-Laufzeitumgebung existiert. Sun bietet Laufzeitumgebungen für Windows (x86-32), Linux (x86-32 und x86-64) sowie Solaris (x86-32, x86-34, SPARC und SPARC64) an. Für weitere Plattformen gibt es Java-Umgebungen von anderen Herstellern, wie z.B. von Apple für Mac OS X oder IBM für AIX, Linux und Windows.
  
-Auf sämtlichen Computern am NTB ist das //Sun Java Development Kit// (kurz JDK) installiert, welches neben der JRE auch die notwendigen Entwicklungswerkzeuge enthält. Für die Java-Entwicklung wird am Besten [[software_entwicklung:eclipse:start|Eclipse]] verwendet, welches ebenfalls auf allen Rechnern verfügbar ist.+Auf sämtlichen Computern am NTB ist das //Sun Java Development Kit// (kurz JDK) installiert, welches neben der JRE auch die notwendigen Entwicklungswerkzeuge enthält. Für die Java-Entwicklung wird am Besten [[software:eclipse:start|Eclipse]] verwendet, welches ebenfalls auf allen Rechnern verfügbar ist.
  
 ===== Eigenschaften und Merkmale ===== ===== Eigenschaften und Merkmale =====
-Java wurde mit dem Ziel entworfen, im Vergleich zu anderen objektorientierten Programmiersprachen einfach zu sein. Dazu wurde der Sprachumfang im Vergleich zu C++ reduzierten. So besitzt Java beispielsweise //Operator Overloading//, keine //Pointer// und auch //Mehrfachvererbung// wird nicht unterstützt. Dennoch wurde die Syntax in vielen Bereichen an C++ angelehnt, so dass das ein Umstieg einfacher wird. Im Gegensatz zu C++ oder Smalltalk wird in Java explizit zwischen Schnittstellen und Klassen unterschieden. Da eine Klasse zwar nicht von mehreren Basisklassen erben kann, aber beliebig viele Interfaces implementieren kann, können die meisten der entsprechenden Probleme trotzdem elegant gelöst werden. Dabei ist jedoch zu beachten, dass Schnittstellen nur die Methodensignaturen an die implementierende Klasse weitergeben können, nicht jedoch Attribute oder bereits implementierte Methoden.+{{  .:java-logo.png?120px&nolink|Java-Logo}} 
 +Java wurde mit dem Ziel entworfen, im Vergleich zu anderen objektorientierten Programmiersprachen einfach zu sein. Dazu wurde der Sprachumfang im Vergleich zu C++ reduzierten. So besitzt Java beispielsweise kein //Operator Overloading//, keine //Pointer// und auch //Mehrfachvererbung// wird nicht unterstützt. Dennoch wurde die Syntax in vielen Bereichen an C++ angelehnt, so dass das ein Umstieg einfacher wird. Im Gegensatz zu C++ oder Smalltalk wird in Java explizit zwischen Schnittstellen und Klassen unterschieden. Da eine Klasse zwar nicht von mehreren Basisklassen erben kann, aber beliebig viele Interfaces implementieren kann, können die meisten der entsprechenden Probleme trotzdem elegant gelöst werden. Dabei ist jedoch zu beachten, dass Schnittstellen nur die Methodensignaturen an die implementierende Klasse weitergeben können, nicht jedoch Attribute oder bereits implementierte Methoden.
  
 Weitere wichtige Eigenschaften von Java sind die starke Typisierung, die automatische Garbage Collection, die Verwendung von Referenzen statt Zeigern sowie das Exception Handling. Weitere wichtige Eigenschaften von Java sind die starke Typisierung, die automatische Garbage Collection, die Verwendung von Referenzen statt Zeigern sowie das Exception Handling.
Zeile 17: Zeile 24:
  
 Obwohl Java eine interpretierbare Sprache ist, ist die Ausführungsgeschwindigkeit durch Just-In-Time Kompilierung und dynamischer Optimierung annähernd so hoch wie bei C++. Obwohl Java eine interpretierbare Sprache ist, ist die Ausführungsgeschwindigkeit durch Just-In-Time Kompilierung und dynamischer Optimierung annähernd so hoch wie bei C++.
 +
 +===== Hello World Beispiel =====
 +<code java>
 +public class HalloWelt {
 +  public static void main(String[] args) {
 +    System.out.println("Hallo, World!");
 +  }
 +}
 +</code>
 +
 +===== Literatur =====
 +  * [[Literatur:Mössenböck:Sprechen Sie Java? | H. Mössenböck: Sprechen Sie Java?]]
 +  * [[Literatur:Ullenboom:Java ist auch eine Insel | C. Ullenboom: Java ist auch eine Insel]]
 +  * [[Literatur:Barnes:Java lernen mit BlueJ | David J. Barnes, Michael Kölling: Java lernen mit BlueJ]]
  
 ===== Weblinks ===== ===== Weblinks =====
   * [[http://www.oracle.com/technetwork/java/javase/downloads/index.html | Sun JRE/JDK Download]]   * [[http://www.oracle.com/technetwork/java/javase/downloads/index.html | Sun JRE/JDK Download]]
   * [[http://download.oracle.com/javase/6/docs/api/ | Java-API Beschreibung]]   * [[http://download.oracle.com/javase/6/docs/api/ | Java-API Beschreibung]]
 +  * [[:Software:JavaDoc:start | Javadoc zur einfachen Dokumentation von Programmen]]
  
 ---- ----
  
-Dieser Text basiert auf den Wikipedia-Artikeln //Java,Java-Syntax, ...+Dieser Text basiert auf den Wikipedia-Artikeln //[[wpde>Java (Programmiersprache)]] und [[wpde>Java-Syntax]]