Java - Fakultät Informatik Uni Stuttgart

Werbung
© Holger Röder
Winter 2008/2009
Programmentwicklung
se
Java: Kapitel 1
Überblick
Programmentwicklung WS 2008/2009
Holger Röder
[email protected]
© 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
Herunterladen