Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1
1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile von Java 06.09.10 2
1.1 Einleitung Berner Fachhochschule Java ist eine moderne Programmiersprache Entwicklung von SUN Mikrosystems Offizielle Ankündigung in 1995 OpenSource- Lizenz seit 1999 Gratis zu akquirieren und zu verteilen 06.09.10 3
1.1.1 Eigenschaften von Java Objektorientiert Mit Ausnahme der Datentypen sind alle Komponenten Objekte Plattformunabhängig Einsetzung auf allen Plattformen und Betriebssystemen Interpretiert Interpretierung des Bytecodes mit der Virtual Machine (VM) Ausführung als Applet oder als Applikation Robust Verschiedene Maßnahmen vermieden Programmierfehler Kein Pointer, Garbage Collection Sicher Bereitstellung von Sicherheitsmodellen 06.09.10 4
1.1.1 Eigenschaften von Java Dynamisch Java lädt nur die benötigte Klassen Offen Module der anderen Sprachen können eingebunden werden Netzwerkfähig Mögliche Implementierung von verteilter Systeme übers Netzwerk Graphik (GUI) Plattformunabhängiges Programmieren von grafischer Oberflächen Multithreading Unterstuzung von parallele Abläufe Klassenbibliotheken Umfangsreiche Bibliotheken stehen zur Verfügung 06.09.10 5
1.1.2 Einsatzgebiete von Java Ursprünglicher Einsatz EDV-Sektoren Internet-Applikation Heutzutage Zunehmender Einsatz in Handheld Mobiltelefonen, Organisieren Kein Einsatz im Echtzeitbereich 06.09.10 6
1.1.3: Empfohlene Bücher Programmieren in Java, Fritz Jobst Go To Java 2, Guido Krüger 06.09.10 7
1.1.4: Infos auf dem Web Originaldokumentation von SUN http://java.sun.com/docs http://java.sun.com/docs/books/tutorial Verschiedene Links für Java http://www.javabuch.de (HTML-Version des Buches Go To Java 2 ) http://java.seite.net/ (die deutsche Java-Seite) http://www.java.de (Java User Group Deutschland) http://www.javamagazin.com (Web-Seite der Zeitschrift Java- Magazin) http://www.javaworld.com (Web-Seite der Zeitschrift Java World) http://javareport.com (Web-Seite der Zeitschrift Java Report) 06.09.10 8
1.2: Ein erstes Beispiel public class Bsp01 { } public static void main (String args[]) { int nbrstudents; System.out.println ("Hello"); // Ausgabe "Hello" if (args.length > 0) // Argument vorhanden? { // ja --> Anzahl Studierende bestimmen nbrstudents = Integer.parseInt(args[0]); System.out.println ("Die Klasse hat " + nbrstudents + " Studierende"); } System.exit(0); // Programm beenden } 06.09.10 9
1.2 Ein erstes Beispiel Berner Fachhochschule Kein wesentlicher Unterschied mit C/C++ Bemerkungen Java Programm besteht aus Klassen Jede Klasse sollte in einer separaten Datei definiert sein Kommentare werden durch /* */ oder // gesetzt Befehle werden mit einem Semikolon abgeschlossen Jedes Programm (außer Applets) muss eine Hauptmethode enthalten public static void main(args[]) Mit System.out.println() kann Text ausgegeben werden Zeichenketten werden mit dem Befehl + verkettet System.exit() beendet das Programm 06.09.10 10
Entwicklung von Java-Programmen Kostenlose Verfügung des JDK (Java Development Kit) www.java.sun.com JDK enthält die folgende Tools javac: Java-Compiler java: Ausführung eines Standalone- Java-Programm appletviewer: Ausführung eines Applets javadoc: Erstellung einer Dokumentation des Quellecodes JDK-Tools werden aus der Kommandozeile gestartet Verwendung von IDE Aufbau auf dem JDK Integration der JDK- Tools mit Texteditor und Debugger 06.09.10 11
1.3.1 Texteditor Berner Fachhochschule Editieren des Quellecodes mit alle Texteditoren Verwendung von Java-Editoren Sprachkonstrukte, Kommentare usw. farblich hervorheben 06.09.10 12
1.3.1 Compiler Berner Fachhochschule Compiler javac Übersetzt den Java-Sourcecode in den ausführbaren Java-Bytecode Plattformunabhängig Files mit Java-Sourcecode haben die Endung «java» Files mit Java-Bytecode haben die Endung «class» Starten des Compilers mit der Kommandozeile javac <filename>.java Daraus wird der Bytecode generiert <filename.class> 06.09.10 13
1.3.3: Interpreter Berner Fachhochschule Die Virtual Machine (VM) interpretiert den Bytecode Starten des Compilers mit der Kommandozeile java <filename> 06.09.10 14
1.3.4 Übersicht Editor Java- Sourcecode <dateiname>.java Java- Compiler Java- Bytecode <dateiname>.class Browser mit integrierter VM Betriebssystem mit VM VM in speziellem VLSI-Chip Hardware (Network-Computer, Spiel-Konsole, mobiles Telefon, Haushaltgeräte...) 06.09.10 15
1.4 Applikationen Berner Fachhochschule Java-Applikationen sind eigenständige Anwendungen Java-Applikationen sind auf einen Interpreter angewiesen Java-Applikationen können auch mit Just-In-Time Compiler generiert werden Plattformabhängiger Maschinencode Schnellere Ausführung als mit einem Interpreter 06.09.10 16
Applets Einfügung der Applets in HTML-Seiten Ausführung der Applets mit Webbrowser oder Applet-Viewer Ablaufe der Applets auf dem Rechner des Anwenders Verbrauch der Ressourcen vom Rechner des Anwenders Applet sind Grafikfähig Zuweisung von einer Fläche innerhalb des Browsers 06.09.10 17
Applet Beispiel BspApplet.java Berner Fachhochschule Einbundung des Applets in den HTML-Code <html> <head> <title>bspapplet Applet</title> </head> <body> <h1>bspapplet Applet</h1> <hr> <applet code="bspapplet.class" width=320 height=320 </applet> <hr> </body> </html> 06.09.10 18
Starten der HTML-Seite im Webbrowser 06.09.10 19
1.6 Vorteile von Java Plattformunabhängig Berner Fachhochschule Viele Funktionalitäten sind durch die Sprache definiert GUI, Internetanbindung usw. Andere Sprachen verwenden unstandardisierten Bibliotheken Es gibt sehr viele preisgünstige Entwicklungsumgebungen Einfach zu erlernen Entwicklungs-Produktivität ist höher als mit C/C Pointer-Problematik Speicherverwaltung Laufzeitprüfungen 06.09.10 20
1.6 Nachteile von Java Garbage-Collection für die Freigabe des Speichers Der Code ist nicht mehr deterministisch Kein Nachteil für Programme im EDV-Bereich Nachteil für den Echtzeitbereich Java ist eine interpretierte Sprache Interpreter brauchen mehr Zeit für die Ausführung des Codes Java-Programme laufen immer langsamer als C/C++ Programmen Entschärfung von diesem Problem mit einem Just-In-Time Compiler Direkte Zugriff auf die Hardware ist nicht vorgesehen 06.09.10 21