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