© Holger Röder
Java: Kapitel 1
Programmentwicklung
Winter 2009/2010
Überblick
se
Programmentwicklung WS 2009/2010
Holger Röder
holger.roeder@informatik.uni-stuttgart.de
© Holger Röder
Winter 2009/2010
Programmentwicklung
se
Was ist Java?
Die Java-Technologie umfasst
die Programmiersprache Java sowie
die Java-Plattform (Laufzeitumgebung, Werkzeuge
Standardbibliothek JDK etc.).
Programmiersprache und Plattform treten meist gemeinsam auf!
Eine begriffliche Unterscheidung ist selten (auch nicht im Folgenden!).
Eigenschaften von Java (laut der Definition von Sun):
Interpretiert
Einfach
Schnell
Objektorientiert
Parallel (multithreaded)
Robust
Dynamisch
Sicher
Dezentral
Architekturneutral
Portierbar
2
© Holger Röder
Winter 2009/2010
Programmentwicklung
se
Historische Entwicklung
1991–1994: Entwicklung der Sprache Oak bei der Firma Sun
Microsystems
Software für elektronische Alltagsgeräte
(Kaffeemaschinen, Set-Top-Boxen etc.)
1995: Umbenennung in Java
Neue Zielrichtung: Anwendungen für das zunehmend
populäre World Wide Web (WWW)
1996: JDK 1.0
1997: JDK 1.1
1998: J2SE 1.2 (Java 2, JDK 1.2)
2000: J2SE 1.3
2002: J2SE 1.4
2004: Java SE 5.0 (1.5)
Stand dieser Vorlesung
2006: Java SE 6.0
2010: Java 7 ?
3
© Holger Röder
Winter 2009/2010
Programmentwicklung
se
Literaturhinweise / Dokumentation
The Java Tutorials (Sun)
http://java.sun.com/docs/books/tutorial/
Christian Ullenboom: Java ist auch eine Insel
8. Auflage, 2009, Galileo Computing
Komplett und kostenlos online verfügbar
http://openbook.galileocomputing.de/javainsel8/
API: Java Platform, Standard Edition 6, API Specification
http://java.sun.com/javase/6/docs/api/
Sprachspezifikation: The Java Language Specification
http://java.sun.com/docs/books/jls/
4
© Holger Röder
Winter 2009/2010
Programmentwicklung
se
Die Java-Plattform
Die Java-Plattform existiert in drei verschiedenen Varianten (Editions):
Jeweils gleicher Java-Sprachkern
Unterschiedliche Standardbibliotheken, die auf den jeweiligen
Anwendungsbereich zugeschnitten sind
Standard Edition (SE):
„Normales“ JDK, Client-Anwendungen
Enterprise Edition (EE):
Server-Anwendungen innerhalb eines Application Servers/Servlet
Containers
Micro Edition (ME):
Eingebettete Systeme, Handys, sonstige ressourcenbeschränkte
Systeme
Inhalt dieser Vorlesung: „SE + ein wenig EE“
5
© Holger Röder
Programmentwicklung
Winter 2009/2010
Überblick: Java SE
se
Quelle: http://java.sun.com/javase/6/docs/
6
© Holger Röder
Im Gegensatz zu vielen anderen Übersetzern erzeugt der Java-Compiler
keinen plattformabhängigen Maschinencode, sondern JavaProgrammcode (Bytecode) für eine virtuelle Maschine.
Die virtuelle Maschine (Java Virtual Machine, JVM) interpretiert den
Bytecode und führt ihn aus.
Nachteil: langsamer als die direkte Ausführung von Maschinencode
Just-In-Time-Compiler mildern dieses Problem!
Vorteil: Bytecode ist plattformunabhängig gleicher Bytecode kann von
JVMs auf unterschiedlichen Plattformen ausgeführt werden.
Programmentwicklung
Winter 2009/2010
Bytecode und virtuelle Maschine
se
7
© Holger Röder
Winter 2009/2010
Programmentwicklung
se
Java-Programme, Einsatzgebiete
Applikationen
Selbständige, „normale“ Programme
Werden mit dem Java-Interpreter direkt ausgeführt
Keine Sicherheitseinschränkungen (Dateizugriff etc.)
Applets
Unselbständige Programme
Eingebettet in HTML-Seiten, werden im Browser ausgeführt
Sicherheitseinschränkungen möglich (Sandbox-Prinzip, bspw. für
Dateizugriff, Netzwerkzugriff etc.)
Spezielle Programmierschnittstelle
Server-Anwendungen (Java EE)
Servlets und JSPs (Java Server Pages) zur serverseitigen
Generierung von HTML-Seiten
Geschäftslogik: Enterprise Java Beans (EJBs), bieten Unterstützung
für Transaktionen, Namensdienste, Sicherheit etc.
Web Services
8
© Holger Röder
„Hello World!“ in Java
Datei HelloWorld.java
Methode main:
fest definierte Startmethode für
Java-Applikationen
Winter 2009/2010
Attribut text
Klasse
HelloWorld
class HelloWorld {
private String text = "abc";
public static void main(String[] args) {
System.out.println("Hello World!");
}
Programmentwicklung
}
se
Aufruf der Methode println:
Text-Ausgabe auf der Konsole
9
© Holger Röder
Java-Anwendungen erstellen und starten
Minimalausstattung: Editor + Java SE 6.0 SDK von Sun
Winter 2009/2010
1. Quellcode schreiben, speichern (HelloWorld.java)
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
2. Java-Bytecode erzeugen (kompilieren, erzeugt HelloWorld.class)
Programmentwicklung
javac HelloWorld.java
se
3. Java-Bytecode ausführen
(interpretieren)
java HelloWorld
10
© Holger Röder
Sehr umfangreiche und komfortable Java-Entwicklungsumgebung
Projekte verwalten, Code schreiben, kompilieren, ausführen,
debuggen, testen, Server verwalten etc. innerhalb eines einzigen
Werkzeugs
Open Source: http://www.eclipse.org/downloads/
Programmentwicklung
Winter 2009/2010
Eclipse Java IDE
se
11
© Holger Röder
Winter 2009/2010
Programmentwicklung
se
Hallo Eclipse!
1. Neues Java-Projekt erstellen:
File > New > Project, Java Project
Projektnamen eingeben
Finish
2. Neue Klasse erstellen: File > New > Class
Name der Klasse eingeben
Häkchen bei public static
void main (String[] args)
setzen
3. Main-Methode schreiben
4. Ausführen:
Run > Run as > Java Application
12