24
28.06.22 Guido Frisch VL Webtechno logie BA Mannheim 1 JAVA Guido Frisch

15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

Embed Size (px)

Citation preview

Page 1: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 1

JAVA

Guido Frisch

Page 2: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 2

Inhalt• Java-Plattform • Java-Applets • Java Sprachumfang / Unterschiede zu JavaScript, sofern

vorhanden... – Datentypen – Operatoren – Kontrollstrukturen – Klassen

• Aufbau eines Java Programms • JavaBeans • JavaServlets • Java Server Pages (JSP) • Vor- / Nachteile von Java und Java-Applets

Page 3: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 3

Java Plattform• Computer-Plattform allgemein: System

bestehend aus Kombination bestimmter Hardware-Architektur mit darauf ablaufendem Betriebssystem (Intel-Prozessor / Linux)

• Software muss für jede Computer-Plattform neu kompiliert werden

Page 4: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 4

Java Plattform• Java-Anwendungen funktionieren auf jeder

beliebigen Computer-Plattform• Voraussetzung: Computer-Plattform

spezifische Java-Laufzeitumgebung (Java Base Plattform)

Page 5: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 5

Java Plattform• Komponenten:

– Java Virtual Machine (JVM) – Überwacht Ausführung– Java Application Programming Interface (Java API) –

Sammlung von Standard-Klassenbibliotheken regeln Zugriff auf Ressourcen der Computer-Plattform

– Java Interpreter – interpretiert den kompilierten Byte-Code

– JIT-Compiler (Just in Time) – übersetzt kurze Programmabschnitte in Binärcode

Page 6: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 6

Java Virtual Machine

Java PlattformJava Compilation Environment

.java

Java-Compiler

.class

Class LoaderByte-Code

VerifierJavaKlassen-Bibliothek

Java JIT -Compiler

Laufzeit-Umgebung

Betriebssystem

Hardware

JavaInterpreter

Page 7: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 7

Java Plattform• Java 2.0 in drei unterschiedlichen

Editionen– Java 2 Standard Edition (J2SE)– Java 2 Micro Edition (J2ME):

Unterhaltungselektronik, Embedded-Systems (PDA, Mobile…)

– Java 2 Enterprise Edition (J2EE): Highend-Systeme, verteilte Business-Applikationen (Multi-Tier Architecture)

Page 8: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 8

Java-Applets

• WWW als Motor für Java (Interaktion zwischen unterschiedlichster Hardware)

• Java wird zur 1. Programmiersprache des WWW• Auf Servern werden Java-Programme (Applets)

zur Verfügung gestellt• Applets werden unter der Kontrolle des

Browsers ausgeführt (Sandbox)• http://java.sun.com/applets/

Page 9: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 9

Java-Applets• Einbindung in HTML:

<APPLET CODE=“HelloWorld.class“CODEBASE=‘http://WWW. inf.uni-jena.de/sack/java/“WIDTH=300HEIGHT=500><PARAM Name=“Parameter1“ VALUE=“1“></APPLET>

• Im Gegensatz zu JavaScript nicht zwangsläufig an HTML-Dokument gebunden

• Code nicht sichtbar

Page 10: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 10

Datentypen• Einfache:• char: 16 Bit Integerwert, der ein Unicode-Zeichen repräsentiert.• Ganzzahlige Datentypen werden stets als vorzeichenbehaftetes

Zweierkomplement kodiert:– byte: 8 Bit– short: 16 Bit– int: 32 Bit– long: 64 Bit

• Java unterscheidet zwei Fließkomma Datentypen:– float: 32 Bit gemäß IEEE 154– double 64 Bit

• boolean: logischer Wert, entweder true oder false• Variablendeklarationen für einfache Datentypen entsprechen der

C/C++ Syntax: int a = 123;

Page 11: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 11

Operatoren

Rang Operator Operation

1 ++ einwertiges Pre- oder Postinkrement

-- einwertiges Pre- oder Postdekrement

+,- einwertige Addition, Subtraktion

~ einwertiges bitweises Komplement

(type) Umwandlungsoperator (cast)

2 *‚ /, % Multiplikation, Division, Modulo

3 +, - Addition (und Stringverkettung), Subtraktion

4 <<, >>, >>> Shift-Operatoren (links, rechts, rechts mit 0-Erweiterung)

5 <, <=, >, >= Vergleichsoperatoren

instanceof Typvergleich

6 ==, != Test auf (Un-)Gleichheit

7 & bitweise logische UND-Verknüpfung

8 ^ bitweise logische EXOR-Verknüpfung

9 | bitweise logische ODER-Verknüpfung

10 && bedingtes logisches UND

11 || bedingtes logisches ODER

12 ?: dreiwertige konditionale Zuweisung

13 = Zuweisung

Page 12: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 12

KontrollstrukturenDie Kontrollstrukturen in Java sind äquivalent zu denen in C/C++, d. h. es existieren folgende Konstrukte:

– if (bedingung) then {anweisungen} else {anweisungen}– while (bedingung) {anweisungen}– do {anweisungen} while (bedingung)– for (start; bedingung; iteration) {anweisungen}– switch: konditionale Mehrfachverzweigung– break: Abbruch der Ausführung des aktuellen

Anweisungsblocks und Fortsetzung im umgebenden Anweisungsblock,

– continue: Abbruch der Verarbeitung und Fortsetzung bei Folgeiteration

Page 13: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 13

Klassen• Sammlung von Attributen und Methoden• Attribute und Methoden definieren Inhalt und

Funktionalität eines Objektspublic class Kreis {

private float Radius;…public float Kreisflaeche( {

returns 3,l415*Radius*Radius;}

…}

• Klasse Kreis wird über das Attribut Radius beschrieben und verfügt über die Methode Kreisflaeche

Page 14: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 14

Klassen• Allen Klassen ist die Basisklasse object gemeinsam• object stellt gemeinsame Methoden und Operatoren

bereit– equals(): Vergleich von Objekten,– clone(): erzeugt Kopie eines Objekts,– getclass(): dient der lnformationsgewinnung über die Klasse

einer bestimmten Objektinstanz, – hashcode(): generiert Hashcode zum Speichern eines Objekts in

der HashTable Klasse,– toString(): ermöglicht Textausgabe eines Objekts– Instance0f(): ergibt true wenn Objekt auf der linken Seite eine

Instanz der auf der rechten Seite angegebenen Klasse ist.

Page 15: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 15

Aufbau eines Java-Programms

• Besteht aus einer Menge von Klassendefinitionen <className>.java

• Eine ausgezeichnete Klasse muss die Methode main() enthalten = Beginn des Programms

• Es gibt in Java keine globalen Variablen• Variablen werden über

<className>.<methodName> angesprochen

Page 16: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 16

Speicherverwaltung

• Anforderung von Speicherbereich für eine Objektinstanz erfolgt über das Schlüsselwort: new

• Unterschied zu C und C++: Garbage Collection verhindert explizite Speicherfreigabe

Page 17: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 17

Exception Handling• Vordefinierte Unterklassen

– java.lang.Error: Fehlerbehandlung– Java.lang.Exception: Behandlung von Ausnahmen

• Vergleichbar mit C++• Kontrollstrukturen für die Ausnahmebehandlung:

– try: schließt den Anweisungsblock ein, in dem die Ausnahme auftreten

– catch: folgt der try-Anweisung und spezifiziert die Behandlung eines bestimmten Ausnahmefalls,

– finally folgt allen catch-Klauseln eines try-Blocks und gibt die Default-Ausnahmebehandlung an, die durchgeführt wird, wenn keine der catch-Klauseln zutrifft.

Page 18: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 18

Ereignisbehandlung• Ereignisse = Benutzereingaben

(Mausoperationen, Tastatureingaben, Schließen von Fenstern etc.)

• Ereignisse sind in java.awt (Java Abstract Windowing Toolkit) spezifiziert

• Ereignisse rufen assoziierte Methode auf• Arten des Ereignisempfangs:

– Version 1.02: handleEvent() leitet an konkrete Verarbeitungsmethoden weiter

– Version 1.1: Ereignis/Listener-Konzept z.B. MouseListener oder KeyboardListener

Page 19: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 19

JavaBeans• Infrastruktur zur Entwicklung wieder verwendbarer

Komponentenbasierter Software• JavaBean-Komponente muss eine Reihe von

Bedingungen erfüllen um in unterschiedlichen Anwendungsarten wieder verwendet werden zu können

• JavaBean-API defniert ein Softwarekomponentenmodell für Java, mit dem unabhängig von einander implementierte JavaBeans zu einer neuen Anwendung zusammengesetzt werden können.

• Enterprise JavaBeans: Serverseitiger Einsatz von JavaBeans

Page 20: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 20

Java Servlets• = Serverseitige Ausführung von Java-Applets• Besonders wichtig bei datenbankgenerierten Web-Seiten• Nachteil von CGI: Jede Anfrage erzeugt einen neuen

Prozess• Java Servlets werden nur einmal aktiviert und erzeugen

bei erneuter Anfrage lediglich einen neuen Thread• Zugriff auf Umgebungsvariablen des WWW-Servers

möglich• Neben WWW-Server wird noch eine Servlet-Engine

benötigt

Page 21: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 21

Java Server Pages (JSP)• Direkte Einbindung von Java-Code in HTML• Java-basierte Erweiterung von Server Side Includes• Vergleichbar mit PHP• Ablauf Client-Server-Interaktion:

– WWW-Client stellt Anfrage nach JSP-Dokument an WWW-Server

– Server wandelt JSP-Dokument mit JSP-Processor in Java Servlet um

– Java Servlet wird in Byte-Code konvertiert => ein neues HTML-Dokument wird erzeugt

– WWW-Server liefert neues HTML-Dokument an WWW-Client

Page 22: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 22

WWW-Client WWW-Server JSP-Processor

t t t

JSP-Dokument

.jsp

.class

Umwandlung in

Java Byte-Code

.html

Servlet-Container

.class.java

Java Servlet

Umwandlung

+

.html

Verarbeitung

Ausführung

Anfrage

Verarbeitung

Antwort

Page 23: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 23

Java Server Pages (JSP)• Einbindung eines Scriptlets in HTML:

<% … Java Code …%>

• Einbindung in XML-Dokument:

<jsp:scriptlet>... Java Code …</jsp:scriptlet>

Page 24: 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch

26.04.23Guido Frisch VL Webtechnologie BA Mannheim 24

Vor- / Nachteile von Java und Java-Applets

???