© 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