© Holger Röder
Winter 2008/2009
Programmentwicklung
se
Java: Kapitel 1
Überblick
Programmentwicklung WS 2008/2009
Holger Röder
holger.roeder@informatik.uni-stuttgart.de
© Holger Röder
Winter 2008/2009
Programmentwicklung
se
Was ist Java?
Die Java-Technologie umfasst
die Programmiersprache Java sowie
die Java-Plattform (Laufzeitumgebung,
Standardbibliothek/API 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 2008/2009
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
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
2009: Java 7 ?
3
© Holger Röder
Winter 2008/2009
Programmentwicklung
se
Literaturhinweise / Dokumentation
The Java Tutorials (Sun)
http://java.sun.com/docs/books/tutorial/
Christian Ullenboom: Java ist auch eine Insel
7. Auflage, 2007, Galileo Computing
Komplett und kostenlos online verfügbar
http://www.galileocomputing.de/openbook/javainsel7/
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 2008/2009
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 2008/2009
Überblick: Java SE
se
Quelle: http://java.sun.com/javase/6/docs/
6
© Holger Röder
Im Gegensatz zu vielen anderen Übersetzern erzeugt der JavaCompiler 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 2008/2009
Bytecode und virtuelle Maschine
se
7
© Holger Röder
Winter 2008/2009
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 2008/2009
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 2008/2009
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 2008/2009
Eclipse Java IDE
se
11
© Holger Röder
Winter 2008/2009
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