NSTU Pawlow Konstantin AM-511 Automatik und Rechentechnik 2006 JAVA Write once, run anywhere (deutsch: „Einmal schreiben, überall ausführen“) java.sun.com sun.com javagu.ru www.borland.com/de Java-Technologie Die Java-Technologie wurde von Sun Microsystems entwickelt. Die Java-Technologie besteht aus den folgenden Komponenten: – Programmiersprache Java – Java-Plattform Auf diesen Komponenten aufbauend gibt es folgende Technologien: – – – – Java 2 Platform Standard Edition Java 2 Platform Enterprise Edition Java 2 Platform Micro Edition Java Card Inhaltsverzeichnis Grundkonzepte der Sprache Objektorientierung Reflection Write Once, Run Anywhere Modulare Ausführung auf fernen Computern Merkmale der Sprache Entstehung und Weiterentwicklung der Sprache Entstehung Sun und JCP (Java Community Process) Entwicklungsumgebungen Grundkonzepte der Sprache Objektorientierte Programmiersprache Gleiche Programme auf unterschiedlichen Computersystemen Eingebaute Unterstützung für die Verwendung von Computernetzen Code aus entfernten Quellen sicher ausführen können Das Sicherheitskonzept von Java drei Schichten besteht: 1. dem Code-Verifier, der sicherstellt, dass die VM keinen ungültigen Bytecode ausführen kann 2. den Class-Loadern, die die sichere Zuführung von Klasseninformationen zur JVM steuern 3. den Security-Managern die sicherstellen, dass nur Zugriff auf Programmobjekte erlaubt wird, für die entsprechende Rechte vorhanden sind Grundkonzepte der Sprache Die erfolgreichen Aspekte bereits verbreiteter objektorientierter Programmiersprachen sollen Java-Programmierer zur Verfügung stehen Objektorientierung Die Sprache Java gehört zu den objektorientierten Programmiersprachen Java ist nicht vollständig objektorientiert: Die Grunddatentypen (int, boolean usw.) und Literale sind keine Objekte Reflection Java bietet eine Reflection-API als Bestandteil der Laufzeitumgebung Write Once, Run Anywhere Java funktioniert nach dem Konzept Write Once, Run Anywhere Das bedeutet, dass man ein Programm, das in Java programmiert wurde, theoretisch nur einmal zu kompilieren braucht und es auf allen anderen Systemen läuft, die eine JavaLaufzeitumgebung (Java Runtime Environment bzw. JRE) besitzen Write Once, Run Anywhere Der Bytecode funktioniert also als Zwischencode, zwischen Programmiersprache und Maschinensprache. So ist das Javaprogramm nicht an eine bestimmte Maschine gebunden. Write Once, Run Anywhere Das Java Runtime Environment existiert für weit verbreitete Betriebssysteme wie Microsoft Windows, Linux, Solaris, Mac OS X, AIX und viele andere Write Once, Run Anywhere Daneben gibt es eine JRE nicht nur für Serverund Desktop-Betriebssysteme, sondern auch für viele Embedded Systeme wie Mobiltelefone, PDAs, sowie Smartcards und andere technische Plattformen, wie Auto und TV. Write Once, Run Anywhere Es gibt aber auch Compiler, die Java direkt in Maschinencode übersetzen (Native Compiler) Modulare Ausführung auf fernen Computern Java bietet die Möglichkeit, Klassen zu schreiben, die in unterschiedlichen Ausführungsumgebungen ablaufen. Beispielsweise lassen sich Applets in Webbrowsern, die Java unterstützen, ausführen. Beispiele für Java-Ausführungsumgebungen sind Applets, Servlets, Portlets, Midlets, Xlets, Translets, und Enterprise Java Beans. Merkmale der Sprache Der Objektzugriff in Java ist über Referenzen genannte Zeiger implementiert. So genannte Zeigerarithmetik ist mit der Sprache also ausgeschlossen. Per Design können so Fehler, welche häufig in anderen Programmiersprachen auftreten, von vornherein ausgeschlossen werden. Merkmale der Sprache Zusammengehörige Klassen werden in Paketen (englisch packages) zusammengefasst. Diese Pakete ermöglichen die Einschränkung der Sichtbarkeit von Klassen, eine Strukturierung von größeren Projekten sowie eine Trennung des Namensraums für verschiedene Entwickler. Merkmale der Sprache Unterstützt die Sprache Threads (nebenläufig ablaufende Programmteile) und Ausnahmen (englisch exception) und Java beinhaltet auch eine automatische Speicherbereinigung (englisch garbage collector), die nicht (mehr) referenzierte Objekte aus dem Speicher entfernt. Merkmale der Sprache Zu Java gehört eine umfangreiche Klassenbibliothek. Mit Java 1.2 wurden die Java Foundation Classes (JFC) eingeführt, die unter anderem Swing bereitstellen, das zur Erzeugung plattformunabhängiger grafischer Benutzerschnittstellen (GUI) dient und auf AWT basiert. Entstehung und Weiterentwicklung der Sprache Entstehung Geschichte Javas Sun и JCP (JCP – Java Community Process) Geschichte Javas Die Urversion von Java - auch Oak genannt wurde in einem Zeitraum von 18 Monaten vom Frühjahr 1991 bis Sommer 1992 unter dem Projektnamen The Green Project Geschichte Javas The Green Project von Patrick Naughton, Mike Sheridan, James Gosling und Bill Joy sowie neun weiteren Entwicklern im Auftrag des USamerikanischen Computerherstellers Sun Microsystems entwickelt. Patrick Naughton James Gosling Bill Joy Geschichte Javas Die Entwicklung fand in einem unauffälligen Bürogebäude in der Sand Hill Road in Menlo Park statt. Geschichte Javas Im Sommer 1992 schließlich war die erste Oakbasierte Anwendung fertig gestellt – “an interactive, handheld home-entertainment device controller with an animated touchscreen user interface”. Diese Technologiedemonstration einer Touchscreen-basierten Gerätesteuerung mit animierter Benutzeroberfläche (GUI) hatte den Namen *7 (StarSeven). Geschichte Javas Hinterzimmer-Projekt „The Green Project“ entstand die Firma „FirstPerson“. Aus dem Büro wurde ein Bürohaus in der 100 Hamilton Avenue in Palo Alto. Sun и JCP Der JCP wurde 1998 von Sun Microsystems ins Leben gerufen Die grossen Unternehmen vervollkommnend Java. Entwicklungsumgebungen Die bekanntesten Open-SourceUmgebungen sind Eclipse und NetBeans Eclipse NetBeans NetBeans Der Manager des Projektes Arbeitsraum Eigenschaftenfenster Das Basisfenster Eclipse Platform Der Forscher des Paketes Arbeitsraum Das Basisfenster X-CODE aus Mac OS X Groups & Files Der Editor Unter den kommerziellen Entwicklungsumgebungen Netbeans basierende Sun ONE Studio von Sun IntelliJ IDEA von JetBrains JBuilder von Borland Links & Web http://www.sun.de/ http://java.sun.com/ http://de.wikipedia.org/ http://www.apple.com/de/macosx/ http://javagu.ru/ http://www.borland.com/de http://www.falkhausen.de/download/diagram/img/ http://www-128.ibm.com/developerworks/java/library/ Anhang.Bytecode Anhang.JFC NSTU Pawlow Konstantin AM-511 Automatik und Rechentechnik 2006