Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Neues in Java 7
2 Threads und nebenläufige Programmierung
3 Datenstrukturen und Algorithmen
4 Raum und Zeit
5 Dateien, Verzeichnisse und Dateizugriffe
6 Datenströme
7 Die eXtensible Markup Language (XML)
8 Dateiformate
9 Grafische Oberflächen mit Swing
10 Grafikprogrammierung
11 Netzwerkprogrammierung
12 Verteilte Programmierung mit RMI
13 RESTful und SOAP Web-Services
14 JavaServer Pages und Servlets
15 Applets
16 Datenbankmanagement mit JDBC
17 Technologien für die Infrastruktur
18 Reflection und Annotationen
19 Dynamische Übersetzung und Skriptsprachen
20 Logging und Monitoring
21 Java Native Interface (JNI)
22 Sicherheitskonzepte
23 Dienstprogramme für die Java-Umgebung
Stichwort

Download:
- openbook, ca. 21,3 MB
Buch bestellen
Ihre Meinung?

Spacer
Java 7 - Mehr als eine Insel von Christian Ullenboom
Das Handbuch zu den Java SE-Bibliotheken
Buch: Java 7 - Mehr als eine Insel

Java 7 - Mehr als eine Insel
Galileo Computing
1433 S., 2012, geb.
49,90 Euro, ISBN 978-3-8362-1507-7
Die Fortsetzung des Java-Kultbuchs für Entwickler! Hier bekommen Sie umfassendes und kompetentes Praxiswissen zu den vielen Bibliotheken und Technologien in einem Band. Am Beispiel konkreter Java-Projekte zeigt Christian Ullenboom, was man wissen muss über Swing, Netzwerk- und Grafikprogrammierung, RMI und Web-Services, JavaServer Pages und Servlets, Applets, JDBC, Reflection und Annotationen, Logging und Monitoring, Java Native Interface (JNI) und vieles mehr. Dieses Buch ist Ihr unersetzlicher Begleiter bei der täglichen Arbeit!
Nutzen Sie die HTML-Version (inkl. Syntax-Highlighting) zum Reinschnuppern oder als immer verfügbare Ergänzung zu Ihrem Buch.

Auf unserer Katalogseite steht Ihnen ab sofort zusätzlich eine Volltextsuche im Buch zur Verfügung.

Die gedruckte Version des Buches erhalten Sie in unserem Online-Shop - versandkostenfrei innerhalb Deutschlands und Österreichs.
Zum Online-Shop

Inhaltsverzeichnis

Vorwort

Organisation der Kapitel

Vorwort zur 1. Auflage


Galileo Computing - Zum Seitenanfang

1 Neues in Java 7

1.1 Sprachänderungen

1.1.1 Zahlen im Binärsystem schreiben

1.1.2 Unterstriche bei Ganzzahlen

1.1.3 switch (String)

1.1.4 Zusammenfassen gleicher catch-Blöcke mit dem multi-catch

1.1.5 Präzisiertes rethrows

1.1.6 Automatisches Ressourcen-Management (try mit Ressourcen)

1.1.7 try mit Ressourcen

1.1.8 Ausnahmen vom close() bleiben bestehen

1.1.9 Die Schnittstelle AutoCloseable

1.1.10 Mehrere Ressourcen nutzen

1.1.11 Unterdrückte Ausnahmen *

1.2 JVM-Änderungen

1.2.1 invokedynamic

1.3 Neue Pakete und Klassen

1.3.1 Weitere Änderungen


Galileo Computing - Zum Seitenanfang

2 Threads und nebenläufige Programmierung

2.1 Threads erzeugen

2.1.1 Threads über die Schnittstelle Runnable implementieren

2.1.2 Thread mit Runnable starten

2.1.3 Die Klasse Thread erweitern

2.2 Thread-Eigenschaften und -Zustände

2.2.1 Der Name eines Threads

2.2.2 Wer bin ich?

2.2.3 Die Zustände eines Threads *

2.2.4 Schläfer gesucht

2.2.5 Mit yield() auf Rechenzeit verzichten

2.2.6 Der Thread als Dämon

2.2.7 Das Ende eines Threads

2.2.8 Einen Thread höflich mit Interrupt beenden

2.2.9 UncaughtExceptionHandler für unbehandelte Ausnahmen

2.2.10 Der stop() von außen und die Rettung mit ThreadDeath *

2.2.11 Ein Rendezvous mit join() *

2.2.12 Arbeit niederlegen und wieder aufnehmen *

2.2.13 Priorität *

2.3 Der Ausführer (Executor) kommt

2.3.1 Die Schnittstelle Executor

2.3.2 Die Thread-Pools

2.3.3 Threads mit Rückgabe über Callable

2.3.4 Mehrere Callable abarbeiten

2.3.5 ScheduledExecutorService für wiederholende Ausgaben und Zeitsteuerungen nutzen

2.4 Synchronisation über kritische Abschnitte

2.4.1 Gemeinsam genutzte Daten

2.4.2 Probleme beim gemeinsamen Zugriff und kritische Abschnitte

2.4.3 Punkte parallel initialisieren

2.4.4 i++ sieht atomar aus, ist es aber nicht *

2.4.5 Kritische Abschnitte schützen

2.4.6 Kritische Abschnitte mit ReentrantLock schützen

2.4.7 Synchronisieren mit synchronized

2.4.8 Synchronized-Methoden der Klasse StringBuffer *

2.4.9 Mit synchronized synchronisierte Blöcke

2.4.10 Dann machen wir doch gleich alles synchronisiert!

2.4.11 Lock-Freigabe im Fall von Exceptions

2.4.12 Deadlocks

2.4.13 Mit synchronized nachträglich synchronisieren *

2.4.14 Monitore sind reentrant – gut für die Geschwindigkeit *

2.4.15 Synchronisierte Methodenaufrufe zusammenfassen *

2.5 Synchronisation über Warten und Benachrichtigen

2.5.1 Die Schnittstelle Condition

2.5.2 It’s Disco-Time *

2.5.3 Warten mit wait() und Aufwecken mit notify() *

2.5.4 Falls der Lock fehlt: IllegalMonitorStateException *

2.6 Datensynchronisation durch besondere Concurrency-Klassen *

2.6.1 Semaphor

2.6.2 Barrier und Austausch

2.6.3 Stop and go mit Exchanger

2.7 Atomare Operationen und frische Werte mit volatile *

2.7.1 Der Modifizierer volatile bei Objekt-/Klassenvariablen

2.7.2 Das Paket java.util.concurrent.atomic

2.8 Teile und herrsche mit Fork und Join *

2.8.1 Algorithmendesign per »teile und herrsche«

2.8.2 Paralleles Lösen von D&C-Algorithmen

2.8.3 Fork und Join

2.9 Mit dem Thread verbundene Variablen *

2.9.1 ThreadLocal

2.9.2 InheritableThreadLocal

2.9.3 ThreadLocalRandom als Zufallszahlengenerator

2.9.4 ThreadLocal bei der Performance-Optimierung

2.10 Threads in einer Thread-Gruppe *

2.10.1 Aktive Threads in der Umgebung

2.10.2 Etwas über die aktuelle Thread-Gruppe herausfinden

2.10.3 Threads in einer Thread-Gruppe anlegen

2.10.4 Methoden von Thread und ThreadGroup im Vergleich

2.11 Zeitgesteuerte Abläufe

2.11.1 Die Typen Timer und TimerTask

2.11.2 Job-Scheduler Quartz

2.12 Einen Abbruch der virtuellen Maschine erkennen

2.13 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

3 Datenstrukturen und Algorithmen

3.1 Datenstrukturen und die Collection-API

3.1.1 Designprinzip mit Schnittstellen, abstrakten und konkreten Klassen

3.1.2 Die Basis-Schnittstellen Collection und Map

3.1.3 Die Utility-Klassen Collections und Arrays

3.1.4 Das erste Programm mit Container-Klassen

3.1.5 Die Schnittstelle Collection und Kernkonzepte

3.1.6 Schnittstellen, die Collection erweitern, und Map

3.1.7 Konkrete Container-Klassen

3.1.8 Generische Datentypen in der Collection-API

3.1.9 Die Schnittstelle Iterable und das erweiterte for

3.2 Listen

3.2.1 Erstes Listen-Beispiel

3.2.2 Auswahlkriterium ArrayList oder LinkedList

3.2.3 Die Schnittstelle List

3.2.4 ArrayList

3.2.5 LinkedList

3.2.6 Der Feld-Adapter Arrays.asList()

3.2.7 ListIterator *

3.2.8 toArray() von Collection verstehen – die Gefahr einer Falle erkennen

3.2.9 Primitive Elemente in Datenstrukturen verwalten

3.3 Mengen (Sets)

3.3.1 Ein erstes Mengen-Beispiel

3.3.2 Methoden der Schnittstelle Set

3.3.3 HashSet

3.3.4 TreeSet – die sortierte Menge

3.3.5 Die Schnittstellen NavigableSet und SortedSet

3.3.6 LinkedHashSet

3.4 Stack (Kellerspeicher, Stapel)

3.4.1 Die Methoden von Stack

3.5 Queues (Schlangen) und Deques

3.5.1 Queue-Klassen

3.5.2 Deque-Klassen

3.5.3 Blockierende Queues und Prioritätswarteschlangen

3.5.4 PriorityQueue

3.6 Assoziative Speicher

3.6.1 Die Klassen HashMap und TreeMap

3.6.2 Einfügen und Abfragen der Datenstruktur

3.6.3 Über die Bedeutung von equals() und hashCode()

3.6.4 Eigene Objekte hashen

3.6.5 IdentityHashMap

3.6.6 Das Problem von veränderten Elementen

3.6.7 Aufzählungen und Ansichten des Assoziativspeichers

3.6.8 Die Arbeitsweise einer Hash-Tabelle *

3.7 Die Properties-Klasse

3.7.1 Properties setzen und lesen

3.7.2 Properties verketten

3.7.3 Hierarchische Eigenschaften

3.7.4 Eigenschaften auf der Konsole ausgeben *

3.7.5 Properties laden und speichern

3.7.6 Klassenbeziehungen: Properties und Hashtable *

3.8 Mit einem Iterator durch die Daten wandern

3.8.1 Die Schnittstelle Iterator

3.8.2 Der Iterator kann (eventuell auch) löschen

3.8.3 Einen Zufallszahleniterator schreiben

3.8.4 Iteratoren von Sammlungen, das erweiterte for und Iterable

3.8.5 Fail-Fast-Iterator und die ConcurrentModificationException

3.8.6 Die Schnittstelle Enumerator *

3.9 Algorithmen in Collections

3.9.1 Die Bedeutung von Ordnung mit Comparator und Comparable

3.9.2 Sortieren

3.9.3 Den größten und kleinsten Wert einer Collection finden

3.9.4 Nicht-änderbare Datenstrukturen, immutable oder nur-lesen?

3.9.5 Null Object Pattern und leere Sammlungen/Iteratoren zurückgeben

3.9.6 Mit der Halbierungssuche nach Elementen fahnden

3.9.7 Ersetzen, Kopieren, Füllen, Umdrehen, Rotieren *

3.9.8 Listen durchwürfeln *

3.9.9 Häufigkeit eines Elements *

3.9.10 Singletons *

3.9.11 nCopies() *

3.10 Spezielle thread-sichere Datenstrukturen

3.10.1 Wait-free-Algorithmen

3.10.2 Nebenläufiger Assoziativspeicher und die Schnittstelle ConcurrentMap

3.10.3 ConcurrentLinkedQueue

3.10.4 CopyOnWriteArrayList und CopyOnWriteArraySet

3.10.5 Wrapper zur Synchronisation

3.10.6 Blockierende Warteschlangen

3.10.7 ArrayBlockingQueue und LinkedBlockingQueue

3.10.8 PriorityBlockingQueue

3.11 Google Guava (aka Google Collections Library)

3.11.1 Beispiel Multi-Set und Multi-Map

3.11.2 Datenstrukturen aus Guava

3.11.3 Utility-Klassen von Guava

3.11.4 Prädikate

3.11.5 Transformationen

3.12 Die Klasse BitSet für Bitmengen *

3.12.1 Ein BitSet anlegen, füllen und erfragen

3.12.2 Mengenorientierte Operationen

3.12.3 Methodenübersicht

3.12.4 Primzahlen in einem BitSet verwalten

3.13 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

4 Raum und Zeit

4.1 Weltzeit *

4.2 Wichtige Datum-Klassen im Überblick

4.2.1 Der 1.1.1970

4.2.2 System.currentTimeMillis()

4.2.3 Einfache Zeitumrechnungen durch TimeUnit

4.3 Sprachen der Länder

4.3.1 Sprachen und Regionen über Locale-Objekte

4.4 Internationalisierung und Lokalisierung

4.4.1 ResourceBundle-Objekte und Ressource-Dateien

4.4.2 Ressource-Dateien zur Lokalisierung

4.4.3 Die Klasse ResourceBundle

4.4.4 Ladestrategie für ResourceBundle-Objekte

4.5 Die Klasse Date

4.5.1 Objekte erzeugen und Methoden nutzen

4.5.2 Date-Objekte sind nicht immutable

4.6 Calendar und GregorianCalendar

4.6.1 Die abstrakte Klasse Calendar

4.6.2 Der gregorianische Kalender

4.6.3 Calendar nach Date und Millisekunden fragen

4.6.4 Ostertage *

4.6.5 Abfragen und Setzen von Datumselementen über Feldbezeichner

4.6.6 Wie viele Tage hat der Monat, oder wie viele Monate hat ein Jahr? *

4.6.7 Wann beginnt die Woche und wann die erste Woche im Jahr? *

4.7 Zeitzonen in Java *

4.7.1 Zeitzonen durch die Klasse TimeZone repräsentieren

4.7.2 SimpleTimeZone

4.7.3 Methoden von TimeZone

4.8 Zeitdauern und der XML-Datentyp Duration *

4.8.1 DatatypeFactory als Fabrik

4.8.2 Die Duration-Klasse und ihre Methoden

4.9 Formatieren und Parsen von Datumsangaben

4.9.1 Ausgaben mit printf()

4.9.2 Mit DateFormat und SimpleDateFormat formatieren

4.9.3 Parsen von Datumswerten

4.10 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

5 Dateien, Verzeichnisse und Dateizugriffe

5.1 Datei und Verzeichnis

5.1.1 Dateien und Verzeichnisse mit der Klasse File

5.1.2 Verzeichnis oder Datei? Existiert es?

5.1.3 Verzeichnis- und Dateieigenschaften/-attribute

5.1.4 Umbenennen und Verzeichnisse anlegen

5.1.5 Verzeichnisse auflisten und Dateien filtern

5.1.6 Dateien berühren, neue Dateien anlegen, temporäre Dateien

5.1.7 Dateien und Verzeichnisse löschen

5.1.8 Verzeichnisse nach Dateien iterativ durchsuchen *

5.1.9 Wurzelverzeichnis, Laufwerksnamen, Plattenspeicher *

5.1.10 URL-, URI- und Path-Objekte aus einem File-Objekt ableiten *

5.1.11 Mit Locking Dateien sperren *

5.1.12 Sicherheitsprüfung *

5.1.13 Zugriff auf SMB-Server mit jCIFS *

5.2 Dateien mit wahlfreiem Zugriff

5.2.1 Ein RandomAccessFile zum Lesen und Schreiben öffnen

5.2.2 Aus dem RandomAccessFile lesen

5.2.3 Schreiben mit RandomAccessFile

5.2.4 Die Länge des RandomAccessFile

5.2.5 Hin und her in der Datei

5.3 Dateisysteme unter NIO.2

5.3.1 FileSystem und Path

5.3.2 Die Utility-Klasse Files

5.3.3 Dateien kopieren und verschieben

5.3.4 Dateiattribute *

5.3.5 Neue Dateien, Verzeichnisse, symbolische Verknüpfungen anlegen und löschen

5.3.6 MIME-Typen testen *

5.3.7 Verzeichnislistings (DirectoryStream) und Filter *

5.3.8 Rekursive Abläufe des Verzeichnisbaums (FileVisitor) *

5.3.9 Dateisysteme und Dateisystemattribute *

5.3.10 Verzeichnisse im Dateisystem überwachen *

5.4 Wahlfreier Zugriff mit SeekableByteChannel und ByteBuffer *

5.4.1 SeekableByteChannel

5.4.2 ByteBuffer

5.4.3 Beispiel mit Path + SeekableByteChannel + ByteBuffer

5.4.4 FileChannel

5.5 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

6 Datenströme

6.1 Stream-Klassen und Reader/Writer am Beispiel von Dateien

6.1.1 Mit dem FileWriter Texte in Dateien schreiben

6.1.2 Zeichen mit der Klasse FileReader lesen

6.1.3 Kopieren mit FileOutputStream und FileInputStream

6.1.4 Das FileDescriptor-Objekt *

6.1.5 Datenströme über Files mit NIO.2 beziehen

6.2 Basisklassen für die Ein-/Ausgabe

6.2.1 Die abstrakten Basisklassen

6.2.2 Übersicht über Ein-/Ausgabeklassen

6.2.3 Die abstrakte Basisklasse OutputStream

6.2.4 Die Schnittstellen Closeable, AutoCloseable und Flushable

6.2.5 Ein Datenschlucker *

6.2.6 Die abstrakte Basisklasse InputStream

6.2.7 Ressourcen aus dem Klassenpfad und aus Jar?Archiven laden

6.2.8 Ströme mit SequenceInputStream zusammensetzen *

6.2.9 Die abstrakte Basisklasse Writer

6.2.10 Die Schnittstelle Appendable *

6.2.11 Die abstrakte Basisklasse Reader

6.3 Formatierte Textausgaben

6.3.1 Die Klassen PrintWriter und PrintStream

6.3.2 System.out, System.err und System.in

6.4 Schreiben und Lesen aus Strings und Byte-Feldern

6.4.1 Mit dem StringWriter ein String-Objekt füllen

6.4.2 CharArrayWriter

6.4.3 StringReader und CharArrayReader

6.4.4 Mit ByteArrayOutputStream in ein Byte-Feld schreiben

6.4.5 Mit ByteArrayInputStream aus einem Byte-Feld lesen

6.5 Datenströme filtern und verketten

6.5.1 Streams als Filter verketten (verschachteln)

6.5.2 Gepufferte Ausgaben mit BufferedWriter und BufferedOutputStream

6.5.3 Gepufferte Eingaben mit BufferedReader/BufferedInputStream

6.5.4 LineNumberReader zählt automatisch Zeilen mit *

6.5.5 Daten mit der Klasse PushbackReader zurücklegen *

6.5.6 DataOutputStream/DataInputStream *

6.5.7 Basisklassen für Filter *

6.5.8 Die Basisklasse FilterWriter *

6.5.9 Ein LowerCaseWriter *

6.5.10 Eingaben mit der Klasse FilterReader filtern *

6.5.11 Anwendungen für FilterReader und FilterWriter *

6.6 Vermittler zwischen Byte-Streams und Unicode-Strömen

6.6.1 Datenkonvertierung durch den OutputStreamWriter

6.6.2 Automatische Konvertierungen mit dem InputStreamReader

6.7 Kommunikation zwischen Threads mit Pipes *

6.7.1 PipedOutputStream und PipedInputStream

6.7.2 PipedWriter und PipedReader

6.8 Prüfsummen

6.8.1 Die Schnittstelle Checksum

6.8.2 Die Klasse CRC32

6.8.3 Die Adler32-Klasse

6.9 Persistente Objekte und Serialisierung

6.9.1 Objekte mit der Standard-Serialisierung speichern und lesen

6.9.2 Zwei einfache Anwendungen der Serialisierung *

6.9.3 Die Schnittstelle Serializable

6.9.4 Nicht serialisierbare Attribute aussparen

6.9.5 Das Abspeichern selbst in die Hand nehmen

6.9.6 Tiefe Objektkopien *

6.9.7 Versionenverwaltung und die SUID

6.9.8 Wie die ArrayList serialisiert *

6.9.9 Probleme mit der Serialisierung

6.10 Alternative Datenaustauschformate

6.10.1 Serialisieren in XML-Dateien

6.10.2 XML-Serialisierung von JavaBeans mit JavaBeans Persistence *

6.10.3 Die Open-Source-Bibliothek XStream *

6.10.4 Binäre Serialisierung mit Google Protocol Buffers *

6.11 Tokenizer *

6.11.1 StreamTokenizer

6.12 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

7 Die eXtensible Markup Language (XML)

7.1 Auszeichnungssprachen

7.1.1 Die Standard Generalized Markup Language (SGML)

7.1.2 Extensible Markup Language (XML)

7.2 Eigenschaften von XML-Dokumenten

7.2.1 Elemente und Attribute

7.2.2 Beschreibungssprache für den Aufbau von XML-Dokumenten

7.2.3 Schema – eine Alternative zu DTD

7.2.4 Namensraum (Namespace)

7.2.5 XML-Applikationen *

7.3 Die Java-APIs für XML

7.3.1 Das Document Object Model (DOM)

7.3.2 Simple API for XML Parsing (SAX)

7.3.3 Pull-API StAX

7.3.4 Java Document Object Model (JDOM)

7.3.5 JAXP als Java-Schnittstelle zu XML

7.3.6 DOM-Bäume einlesen mit JAXP *

7.4 Java Architecture for XML Binding (JAXB)

7.4.1 Bean für JAXB aufbauen

7.4.2 JAXBContext und die Marshaller

7.4.3 Ganze Objektgraphen schreiben und lesen

7.4.4 Validierung

7.4.5 Weitere JAXB-Annotationen *

7.4.6 Beans aus XML-Schema-Datei generieren

7.5 Serielle Verarbeitung mit StAX

7.5.1 Unterschiede der Verarbeitungsmodelle

7.5.2 XML-Dateien mit dem Cursor-Verfahren lesen

7.5.3 XML-Dateien mit dem Iterator-Verfahren verarbeiten *

7.5.4 Mit Filtern arbeiten *

7.5.5 XML-Dokumente schreiben

7.6 Serielle Verarbeitung von XML mit SAX *

7.6.1 Schnittstellen von SAX

7.6.2 SAX-Parser erzeugen

7.6.3 Operationen der Schnittstelle ContentHandler

7.6.4 ErrorHandler und EntityResolver

7.7 XML-Dateien mit JDOM verarbeiten

7.7.1 JDOM beziehen

7.7.2 Paketübersicht *

7.7.3 Die Document-Klasse

7.7.4 Eingaben aus der Datei lesen

7.7.5 Das Dokument im XML-Format ausgeben

7.7.6 Der Dokumenttyp *

7.7.7 Elemente

7.7.8 Zugriff auf Elementinhalte

7.7.9 Liste mit Unterelementen erzeugen *

7.7.10 Neue Elemente einfügen und ändern

7.7.11 Attributinhalte lesen und ändern

7.7.12 XPath

7.8 Transformationen mit XSLT *

7.8.1 Templates und XPath als Kernelemente von XSLT

7.8.2 Umwandlung von XML-Dateien mit JDOM und JAXP

7.9 XML-Schema-Validierung *

7.9.1 SchemaFactory und Schema

7.9.2 Validator

7.9.3 Validierung unterschiedlicher Datenquellen durchführen

7.10 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

8 Dateiformate

8.1 Einfache Dateiformate für strukturierte Daten

8.1.1 Property-Dateien

8.1.2 CSV-Dateien

8.1.3 JSON-Serialisierung mit Jackson

8.2 Dokumentenformate

8.2.1 (X)HTML

8.2.2 PDF-Dokumente

8.2.3 Microsoft Office-Dokumente

8.2.4 OASIS Open Document Format

8.3 Datenkompression *

8.3.1 Java-Unterstützung beim Komprimieren

8.3.2 Daten packen und entpacken

8.3.3 Datenströme komprimieren

8.3.4 Zip-Archive

8.3.5 Jar-Archive

8.4 Bild-Formate

8.5 Audio-Dateien

8.5.1 Die Arbeit mit AudioClip

8.5.2 MIDI-Dateien abspielen


Galileo Computing - Zum Seitenanfang

9 Grafische Oberflächen mit Swing

9.1 Fenster zur Welt

9.1.1 Swing-Fenster mit javax.swing.JFrame darstellen

9.1.2 Fenster schließbar machen – setDefaultCloseOperation()

9.1.3 Sichtbarkeit des Fensters

9.1.4 Größe und Position des Fensters verändern

9.1.5 Fenster- und Dialog-Dekoration, Transparenz *

9.1.6 Die Klasse Toolkit *

9.1.7 Dynamisches Layout während einer Größenänderung *

9.1.8 Zum Vergleich: AWT-Fenster darstellen *

9.2 Beschriftungen (JLabel)

9.2.1 Mehrzeiliger Text, HTML in der Darstellung

9.3 Icon und ImageIcon für Bilder auf Swing-Komponenten

9.3.1 Die Klasse ImageIcon

9.3.2 Die Schnittstelle Icon und eigene Icons zeichnen *

9.4 Es tut sich was – Ereignisse beim AWT

9.4.1 Die Ereignisquellen und Horcher (Listener) von Swing

9.4.2 Listener implementieren

9.4.3 Listener bei dem Ereignisauslöser anmelden/abmelden

9.4.4 Adapterklassen nutzen

9.4.5 Innere Mitgliedsklassen und innere anonyme Klassen

9.4.6 Aufrufen der Listener im AWT-Event-Thread

9.4.7 Ereignisse, etwas genauer betrachtet *

9.5 Schaltflächen

9.5.1 Normale Schaltflächen (JButton)

9.5.2 Der aufmerksame ActionListener

9.5.3 Schaltflächen-Ereignisse vom Typ ActionEvent

9.5.4 Basisklasse AbstractButton

9.5.5 Wechselknopf (JToggleButton)

9.6 Textkomponenten

9.6.1 Text in einer Eingabezeile

9.6.2 Die Oberklasse der Text-Komponenten (JTextComponent)

9.6.3 Geschützte Eingaben (JPasswordField)

9.6.4 Validierende Eingabefelder (JFormattedTextField)

9.6.5 Einfache mehrzeilige Textfelder (JTextArea)

9.6.6 Editor-Klasse (JEditorPane) *

9.7 Swing Action *

9.8 JComponent und Component als Basis aller Komponenten

9.8.1 Hinzufügen von Komponenten

9.8.2 Tooltips (Kurzhinweise)

9.8.3 Rahmen (Border) *

9.8.4 Fokus und Navigation *

9.8.5 Ereignisse jeder Komponente *

9.8.6 Die Größe und Position einer Komponente *

9.8.7 Komponenten-Ereignisse *

9.8.8 UI-Delegate – der wahre Zeichner *

9.8.9 Undurchsichtige (opake) Komponente *

9.8.10 Properties und Listener für Änderungen *

9.9 Container

9.9.1 Standardcontainer (JPanel)

9.9.2 Bereich mit automatischen Rollbalken (JScrollPane)

9.9.3 Reiter (JTabbedPane)

9.9.4 Teilungskomponente (JSplitPane)

9.10 Alles Auslegungssache: die Layoutmanager

9.10.1 Übersicht über Layoutmanager

9.10.2 Zuweisen eines Layoutmanagers

9.10.3 Im Fluss mit FlowLayout

9.10.4 BoxLayout

9.10.5 Mit BorderLayout in alle Himmelsrichtungen

9.10.6 Rasteranordnung mit GridLayout

9.10.7 Der GridBagLayoutmanager *

9.10.8 Null-Layout *

9.10.9 Weitere Layoutmanager

9.11 Rollbalken und Schieberegler

9.11.1 Schieberegler (JSlider)

9.11.2 Rollbalken (JScrollBar) *

9.12 Kontrollfelder, Optionsfelder, Kontrollfeldgruppen

9.12.1 Kontrollfelder (JCheckBox)

9.12.2 ItemSelectable, ItemListener und das ItemEvent

9.12.3 Sich gegenseitig ausschließende Optionen (JRadioButton)

9.13 Fortschritte bei Operationen überwachen *

9.13.1 Fortschrittsbalken (JProgressBar)

9.13.2 Dialog mit Fortschrittsanzeige (ProgressMonitor)

9.14 Menüs und Symbolleisten

9.14.1 Die Menüleisten und die Einträge

9.14.2 Menüeinträge definieren

9.14.3 Einträge durch Action-Objekte beschreiben

9.14.4 Mit der Tastatur: Mnemonics und Shortcut

9.14.5 Der Tastatur-Shortcut (Accelerator)

9.14.6 Tastenkürzel (Mnemonics)

9.14.7 Symbolleisten alias Toolbars

9.14.8 Popup-Menüs

9.14.9 System-Tray nutzen *

9.15 Das Model-View-Controller-Konzept

9.16 Auswahlmenüs, Listen und Spinner

9.16.1 Listen (JList)

9.16.2 Auswahlmenü (JComboBox)

9.16.3 Drehfeld (JSpinner) *

9.16.4 Datumsauswahl *

9.17 Tabellen (JTable)

9.17.1 Ein eigenes Tabellen-Model

9.17.2 Basisklasse für eigene Modelle (AbstractTableModel)

9.17.3 Ein vorgefertigtes Standard-Modell (DefaultTableModel)

9.17.4 Ein eigener Renderer für Tabellen

9.17.5 Zell-Editoren

9.17.6 Größe und Umrandung der Zellen *

9.17.7 Spalteninformationen *

9.17.8 Tabellenkopf von Swing-Tabellen *

9.17.9 Selektionen einer Tabelle *

9.17.10 Automatisches Sortieren und Filtern mit RowSorter *

9.18 Bäume (JTree)

9.18.1 JTree und sein TreeModel und TreeNode

9.18.2 Selektionen bemerken

9.18.3 Das TreeModel von JTree *

9.19 JRootPane und JDesktopPane *

9.19.1 Wurzelkomponente der Top-Level-Komponenten (JRootPane)

9.19.2 JDesktopPane und die Kinder von JInternalFrame

9.19.3 JLayeredPane

9.20 Dialoge und Window-Objekte

9.20.1 JWindow und JDialog

9.20.2 Modal oder nicht-modal?

9.20.3 Standarddialoge mit JOptionPane

9.20.4 Der Dateiauswahldialog

9.20.5 Der Farbauswahldialog JColorChooser *

9.21 Flexibles Java-Look-and-Feel

9.21.1 Look and Feel global setzen

9.21.2 UIManager

9.21.3 Die Windows-Optik mit JGoodies Looks verbessern *

9.22 Swing-Komponenten neu erstellen oder verändern *

9.22.1 Überlagerungen mit dem Swing-Komponenten-Dekorator JLayer

9.23 Die Zwischenablage (Clipboard)

9.23.1 Clipboard-Objekte

9.23.2 Mit Transferable auf den Inhalt zugreifen

9.23.3 DataFlavor ist das Format der Daten in der Zwischenablage

9.23.4 Einfügungen in der Zwischenablage erkennen

9.23.5 Drag & Drop

9.24 Undo durchführen *

9.25 AWT, Swing und die Threads

9.25.1 Ereignisschlange (EventQueue) und AWT-Event-Thread

9.25.2 Swing ist nicht thread-sicher

9.25.3 invokeLater() und invokeAndWait()

9.25.4 SwingWorker

9.25.5 Eigene Ereignisse in die Queue setzen *

9.25.6 Auf alle Ereignisse hören *

9.26 Barrierefreiheit mit der Java Accessibility API

9.27 Zeitliches Ausführen mit dem javax.swing.Timer

9.28 Die Zusatzkomponentenbibliothek SwingX

9.28.1 Im Angebot: Erweiterte und neue Swing-Komponenten

9.28.2 Überblick über erweiterte Standard-Swing-Klassen

9.28.3 Neue Swing-Klassen

9.28.4 Weitere SwingX-Klassen

9.28.5 SwingX-Installation

9.29 Alternativen zu programmierten Oberflächen, AWT und Swing *

9.29.1 Deklarative Beschreibungen der Oberfläche: Swing JavaBuilder, Swixml

9.29.2 SWT (Standard Widget Toolkit)

9.30 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

10 Grafikprogrammierung

10.1 Grundlegendes zum Zeichnen

10.1.1 Die paint()-Methode für das AWT-Frame

10.1.2 Zeichnen von Inhalten auf ein JFrame

10.1.3 Auffordern zum Neuzeichnen mit repaint()

10.1.4 Java 2D-API

10.2 Einfache Zeichenmethoden

10.2.1 Linien

10.2.2 Rechtecke

10.2.3 Ovale und Kreisbögen

10.2.4 Polygone und Polylines

10.3 Zeichenketten schreiben und Fonts

10.3.1 Zeichenfolgen schreiben

10.3.2 Die Font-Klasse

10.3.3 Einen neuen Font aus einem gegebenen Font ableiten

10.3.4 Zeichensätze des Systems ermitteln *

10.3.5 Neue TrueType-Fonts in Java nutzen

10.3.6 Font-Metadaten durch FontMetrics *

10.4 Geometrische Objekte

10.4.1 Die Schnittstelle Shape

10.4.2 Kreisförmiges

10.4.3 Kurviges *

10.4.4 Area und die konstruktive Flächengeometrie *

10.4.5 Pfade *

10.4.6 Punkt in einer Form, Schnitt von Linien, Abstand Punkt/Linie *

10.5 Das Innere und Äußere einer Form

10.5.1 Farben und die Paint-Schnittstelle

10.5.2 Farben mit der Klasse Color

10.5.3 Die Farben des Systems über SystemColor *

10.5.4 Composite und Xor *

10.5.5 Dicke und Art der Linien von Formen bestimmen über Stroke *

10.6 Bilder

10.6.1 Eine Übersicht über die Bilder-Bibliotheken

10.6.2 Bilder mit ImageIO lesen

10.6.3 Ein Bild zeichnen

10.6.4 Programm-Icon/Fenster-Icon setzen

10.6.5 Splash-Screen *

10.6.6 Bilder im Speicher erzeugen *

10.6.7 Pixel für Pixel auslesen und schreiben *

10.6.8 Bilder skalieren *

10.6.9 Schreiben mit ImageIO

10.6.10 Asynchrones Laden mit getImage() und dem MediaTracker *

10.7 Weitere Eigenschaften von Graphics *

10.7.1 Eine Kopie von Graphics erstellen

10.7.2 Koordinatensystem verschieben

10.7.3 Beschnitt (Clipping)

10.7.4 Zeichenhinweise durch RenderingHints

10.7.5 Transformationen mit einem AffineTransform-Objekt

10.8 Drucken *

10.8.1 Drucken der Inhalte

10.8.2 Bekannte Drucker

10.9 Benutzerinteraktionen automatisieren, Robot und Screenshots *

10.9.1 Der Roboter

10.9.2 Automatisch in die Tasten hauen

10.9.3 Automatisierte Mausoperationen

10.9.4 Methoden zur Zeitsteuerung

10.9.5 Bildschirmabzüge (Screenshots)

10.9.6 Funktionsweise und Beschränkungen

10.9.7 MouseInfo und PointerInfo

10.10 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

11 Netzwerkprogrammierung

11.1 Grundlegende Begriffe

11.2 URI und URL

11.2.1 Die Klasse URI

11.2.2 Die Klasse URL

11.2.3 Informationen über eine URL *

11.2.4 Der Zugriff auf die Daten über die Klasse URL

11.3 Die Klasse URLConnection *

11.3.1 Methoden und Anwendung von URLConnection

11.3.2 Protokoll- und Content-Handler

11.3.3 Im Detail: vom URL zur URLConnection

11.3.4 Der Protokoll-Handler für Jar-Dateien

11.3.5 Basic Authentication und Proxy-Authentifizierung

11.4 Mit GET und POST Daten übergeben *

11.4.1 Kodieren der Parameter für Serverprogramme

11.4.2 Eine Suchmaschine mit GET-Request ansprechen

11.4.3 POST-Request absenden

11.5 Host- und IP-Adressen

11.5.1 Lebt der Rechner?

11.5.2 IP-Adresse des lokalen Hosts

11.5.3 Das Netz ist klasse

11.5.4 NetworkInterface

11.6 Mit dem Socket zum Server

11.6.1 Das Netzwerk ist der Computer

11.6.2 Sockets

11.6.3 Eine Verbindung zum Server aufbauen

11.6.4 Server unter Spannung: die Ströme

11.6.5 Die Verbindung wieder abbauen

11.6.6 Informationen über den Socket *

11.6.7 Reine Verbindungsdaten über SocketAddress *

11.7 Client-Server-Kommunikation

11.7.1 Warten auf Verbindungen

11.7.2 Ein Multiplikationsserver

11.7.3 Blockierendes Lesen

11.7.4 Von außen erreichbar sein *

11.8 Apache HttpComponents und Commons Net *

11.8.1 HttpComponents

11.8.2 Apache Commons Net

11.9 Arbeitsweise eines Webservers *

11.9.1 Das Hypertext Transfer Protocol (HTTP)

11.9.2 Anfragen an den Server

11.9.3 Die Antworten vom Server

11.9.4 Webserver mit com.sun.net.httpserver.HttpServer

11.10 Verbindungen durch einen Proxy-Server *

11.10.1 System-Properties

11.10.2 Verbindungen durch die Proxy-API

11.11 Datagram-Sockets *

11.11.1 Die Klasse DatagramSocket

11.11.2 Datagramme und die Klasse DatagramPacket

11.11.3 Auf ein hereinkommendes Paket warten

11.11.4 Ein Paket zum Senden vorbereiten

11.11.5 Methoden der Klasse DatagramPacket

11.11.6 Das Paket senden

11.12 E-Mail *

11.12.1 Wie eine E-Mail um die Welt geht

11.12.2 Das Simple Mail Transfer Protocol und RFC 822

11.12.3 POP (Post Office Protocol)

11.12.4 Die JavaMail API

11.12.5 E-Mails mittels POP3 abrufen

11.12.6 Multipart-Nachrichten verarbeiten

11.12.7 E-Mails versenden

11.12.8 Ereignisse und Suchen

11.13 Tiefer liegende Netzwerkeigenschaften *

11.13.1 Internet Control Message Protocol (ICMP)

11.13.2 MAC-Adresse

11.14 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

12 Verteilte Programmierung mit RMI

12.1 Entfernte Objekte und Methoden

12.1.1 Stellvertreter helfen bei entfernten Methodenaufrufen

12.1.2 Standards für entfernte Objekte

12.2 Java Remote Method Invocation

12.2.1 Zusammenspiel von Server, Registry und Client

12.2.2 Wie die Stellvertreter die Daten übertragen

12.2.3 Probleme mit entfernten Methoden

12.2.4 Nutzen von RMI bei Middleware-Lösungen

12.2.5 Zentrale Klassen und Schnittstellen

12.2.6 Entfernte und lokale Objekte im Vergleich

12.3 Auf der Serverseite

12.3.1 Entfernte Schnittstelle deklarieren

12.3.2 Remote-Objekt-Implementierung

12.3.3 Stellvertreterobjekte

12.3.4 Der Namensdienst (Registry)

12.3.5 Remote-Objekt-Implementierung exportieren und beim Namensdienst anmelden

12.3.6 Einfaches Logging

12.3.7 Aufräumen mit dem DGC *

12.4 Auf der Clientseite

12.5 Entfernte Objekte übergeben und laden

12.5.1 Klassen vom RMI-Klassenlader nachladen

12.6 Weitere Eigenschaften von RMI

12.6.1 RMI und CORBA

12.6.2 RMI über HTTP getunnelt

12.6.3 Automatische Remote-Objekt-Aktivierung

12.7 Java Message Service (JMS)

12.8 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

13 RESTful und SOAP Web-Services

13.1 Web-Services

13.2 RESTful Web-Services

13.2.1 Aus Prinzip REST

13.2.2 Jersey

13.2.3 JAX-RS-Annotationen für den ersten REST-Service

13.2.4 Test-Server starten

13.2.5 REST-Services konsumieren

13.2.6 Content-Hander, Marshaller und verschiedene MIME-Typen

13.2.7 REST-Parameter

13.2.8 REST-Services mit Parametern über die Jersey-Client-API aufrufen

13.2.9 PUT-Anforderungen und das Senden von Daten

13.2.10 PUT/POST/DELETE-Sendungen mit der Jersey-Client-API absetzen

13.3 Daily Soap und das SOAP-Protokoll

13.3.1 Die technische Realisierung

13.3.2 Web-Service-APIs und Implementierungen

13.3.3 @WebService in Java 6

13.3.4 Einen Web-Service definieren

13.3.5 Web-Services veröffentlichen

13.3.6 Einen JAX-WS-Client implementieren

13.4 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

14 JavaServer Pages und Servlets

14.1 Dynamisch generierte Webseiten

14.1.1 Was sind Servlets?

14.1.2 Was sind JavaServer Pages?

14.2 Servlets und JSPs mit Tomcat entwickeln

14.2.1 Servlet-Container

14.2.2 Entwicklung der Servlet/JSP-Spezifikationen

14.2.3 Webserver mit Servlet-Funktionalität

14.2.4 Tomcat installieren

14.2.5 Ablageort für eigene JSPs

14.2.6 Webapplikationen

14.2.7 Zuordnung von Webapplikationen zu physikalischen Verzeichnissen

14.2.8 Web-Projekt mit Eclipse IDE for Java EE Developers

14.3 Statisches und Dynamisches

14.3.1 Statischer Template-Code

14.3.2 Dynamische Inhalte

14.3.3 Kommentare

14.4 Die Expression Language (EL)

14.4.1 Operatoren der EL

14.4.2 Literale

14.4.3 Implizite EL-Objekte

14.5 Formulardaten

14.5.1 Einen Parameter auslesen

14.5.2 HTML-Formulare

14.6 Auf Beans zurückgreifen

14.6.1 Beans in JSPs anlegen

14.6.2 Properties einer Bean im EL-Ausdruck erfragen

14.6.3 Properties mit <jsp:setProperty> setzen

14.6.4 Bean-Klasse zum Testen von E-Mail-Adressen

14.6.5 Parameterwerte in Bean übertragen

14.7 JSP-Tag-Libraries

14.7.1 Standard Tag Library (JSTL)

14.8 Skripting-Elemente in JSPs

14.8.1 Scriptlets

14.8.2 JSP-Ausdrücke

14.8.3 JSP-Deklarationen

14.8.4 Quoting

14.8.5 Entsprechende XML-Tags

14.8.6 Implizite Objekte für Scriptlets und JSP-Ausdrücke

14.9 Sitzungsverfolgung (Session Tracking)

14.9.1 Lösungen für die Sitzungsverfolgung

14.9.2 Sitzungen in JSPs

14.9.3 Auf Session-Dateien zurückgreifen

14.10 Servlets

14.10.1 Servlets compilieren

14.10.2 Servlet-Mapping

14.10.3 Der Lebenszyklus eines Servlets

14.10.4 Mehrere Anfragen beim Servlet und die Thread-Sicherheit

14.10.5 Servlets und Sessions

14.10.6 Weiterleiten und Einbinden von Servlet-Inhalten

14.11 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

15 Applets

15.1 Applets in der Wiege von Java

15.1.1 Applets heute

15.1.2 (J)Applet und Applikationen

15.1.3 Das erste Hallo-Applet

15.2 Die Applet-API

15.2.1 Die Zyklen eines Applets

15.2.2 Parameter an das Applet übergeben

15.2.3 Wie das Applet den Browser-Inhalt ändern kann *

15.2.4 Den Ursprung des Applets erfragen

15.2.5 Datenaustausch zwischen Applets *

15.2.6 Was ein Applet alles darf *

15.2.7 Ist Java im Browser aktiviert? *

15.2.8 Applet unter Firefox (Netscape) oder Microsoft Internet Explorer? *

15.3 Webstart

15.4 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

16 Datenbankmanagement mit JDBC

16.1 Relationale Datenbanken

16.1.1 Das relationale Modell

16.2 Datenbanken und Tools

16.2.1 HSQLDB

16.2.2 Weitere Datenbanken *

16.2.3 Eclipse-Plugins zum Durchschauen von Datenbanken

16.3 JDBC und Datenbanktreiber

16.3.1 Treibertypen *

16.3.2 JDBC-Versionen *

16.4 Eine Beispielabfrage

16.4.1 Schritte zur Datenbankabfrage

16.4.2 Ein Client für die HSQLDB-Datenbank

16.4.3 Datenbankbrowser und eine Beispielabfrage unter NetBeans

16.5 Mit Java an eine Datenbank andocken

16.5.1 Der Treiber-Manager *

16.5.2 Den Treiber laden

16.5.3 Eine Aufzählung aller Treiber *

16.5.4 Log-Informationen *

16.5.5 Verbindung zur Datenbank auf- und abbauen

16.6 Datenbankabfragen

16.6.1 Abfragen über das Statement-Objekt

16.6.2 Ergebnisse einer Abfrage in ResultSet

16.6.3 Java und SQL-Datentypen

16.6.4 Date, Time und Timestamp

16.6.5 Unicode in der Spalte korrekt auslesen

16.6.6 Eine SQL-NULL und wasNull() bei ResultSet

16.6.7 Wie viele Zeilen hat ein ResultSet? *

16.7 Elemente einer Datenbank hinzufügen und aktualisieren

16.7.1 Batch-Updates

16.7.2 Die Ausnahmen bei JDBC, SQLException und Unterklassen

16.8 ResultSet und RowSet *

16.8.1 Die Schnittstelle RowSet

16.8.2 Implementierungen von RowSet

16.8.3 Der Typ CachedRowSet

16.8.4 Der Typ WebRowSet

16.9 Vorbereitete Anweisungen (Prepared Statements)

16.9.1 PreparedStatement-Objekte vorbereiten

16.9.2 Werte für die Platzhalter eines PreparedStatement

16.10 Transaktionen

16.11 Metadaten *

16.11.1 Metadaten über die Tabelle

16.11.2 Informationen über die Datenbank

16.12 Vorbereitete Datenbankverbindungen

16.12.1 DataSource

16.12.2 Gepoolte Verbindungen

16.13 JPA-Beispiel mit der NetBeans-IDE

16.13.1 Entity-Beans generieren

16.13.2 Die Quellen im Überblick

16.13.3 Persistence Unit

16.13.4 Ein JPA-Beispielprogramm

16.14 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

17 Technologien für die Infrastruktur

17.1 Property-Validierung durch Bean Validation

17.1.1 Technische Abhängigkeiten und POJOs

17.2 Wie eine Implementierung an die richtige Stelle kommt

17.2.1 Arbeiten mit dem ServiceLoader

17.2.2 Die Utility-Klasse Lookup als ServiceLoader-Fassade

17.2.3 Contexts and Dependency Injection (CDI) aus dem JSR-299

17.3 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

18 Reflection und Annotationen

18.1 Metadaten

18.1.1 Metadaten durch JavaDoc-Tags

18.2 Metadaten der Klassen mit dem Class-Objekt

18.2.1 An ein Class-Objekt kommen

18.2.2 Was das Class-Objekt beschreibt *

18.2.3 Der Name der Klasse

18.2.4 instanceof mit Class-Objekten *

18.2.5 Oberklassen finden *

18.2.6 Implementierte Interfaces einer Klasse oder eines Interfaces *

18.2.7 Modifizierer und die Klasse Modifier *

18.2.8 Die Arbeit auf dem Feld *

18.3 Attribute, Methoden und Konstruktoren

18.3.1 Reflections – Gespür für die Attribute einer Klasse

18.3.2 Methoden einer Klasse erfragen

18.3.3 Properties einer Bean erfragen

18.3.4 Konstruktoren einer Klasse

18.3.5 Annotationen

18.4 Objekte erzeugen und manipulieren

18.4.1 Objekte erzeugen

18.4.2 Die Belegung der Variablen erfragen

18.4.3 Eine generische eigene toString()-Methode *

18.4.4 Variablen setzen

18.4.5 Bean-Zustände kopieren *

18.4.6 Private Attribute ändern

18.4.7 Methoden aufrufen

18.4.8 Statische Methoden aufrufen

18.4.9 Dynamische Methodenaufrufe bei festen Methoden beschleunigen *

18.5 Eigene Annotationstypen *

18.5.1 Annotationen zum Laden von Ressourcen

18.5.2 Neue Annotationen deklarieren

18.5.3 Annotationen mit genau einem Attribut

18.5.4 Element-Werte-Paare (Attribute) hinzufügen

18.5.5 Annotationsattribute vom Typ einer Aufzählung

18.5.6 Felder von Annotationsattributen

18.5.7 Vorbelegte Attribute

18.5.8 Annotieren von Annotationstypen

18.5.9 Deklarationen für unsere Ressourcen-Annotationen

18.5.10 Annotierte Elemente auslesen

18.5.11 Auf die Annotationsattribute zugreifen

18.5.12 Komplettbeispiel zum Initialisieren von Ressourcen

18.5.13 Mögliche Nachteile von Annotationen

18.6 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

19 Dynamische Übersetzung und Skriptsprachen

19.1 Codegenerierung

19.1.1 Generierung von Java-Quellcode

19.1.2 Codetransformationen

19.1.3 Erstellen von Java-Bytecode

19.2 Programme mit der Compiler API übersetzen

19.2.1 Java Compiler API

19.2.2 Fehler-Diagnose

19.2.3 Eine im String angegebene Compiliationseinheit übersetzen

19.2.4 Wenn Quelle und Ziel der Speicher sind

19.3 Ausführen von Skripten

19.3.1 JavaScript-Programme ausführen

19.3.2 Groovy

19.4 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

20 Logging und Monitoring

20.1 Logging mit Java

20.1.1 Logging-APIs

20.1.2 Logging mit java.util.logging

20.1.3 Logging mit log4j *

20.1.4 Die Simple Logging Facade

20.2 Systemzustände überwachen

20.3 MBean-Typen, MBean-Server und weitere Begriffe

20.3.1 MXBeans des Systems

20.4 Geschwätzige Programme und JConsole

20.4.1 JConsole

20.5 Der MBeanServer

20.6 Eine eigene Standard-MBean

20.6.1 Management-Schnittstelle

20.6.2 Implementierung der Managed-Ressource

20.6.3 Anmeldung beim Server

20.6.4 Eine eigene Bean in JConsole einbringen

20.7 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

21 Java Native Interface (JNI)

21.1 Java Native Interface und Invocation-API

21.2 Eine C-Funktion in ein Java-Programm einbinden

21.2.1 Den Java-Code schreiben

21.3 Dynamische Bibliotheken erzeugen

21.3.1 Die Header-Datei erzeugen

21.3.2 Implementierung der Funktion in C

21.3.3 Die C-Programme übersetzen und die dynamische Bibliothek überzeugen

21.4 Nativ die Stringlänge ermitteln

21.5 Erweiterte JNI-Eigenschaften

21.5.1 Klassendefinitionen

21.5.2 Zugriff auf Attribute

21.5.3 Methoden aufrufen

21.5.4 Threads und Synchronisation

21.6 Einfache Anbindung von existierenden Bibliotheken

21.6.1 Generieren von JNI-Wrappern aus C++-Klassen und C-Headern

21.6.2 COM-Schnittstellen anzapfen

21.7 Invocation-API

21.8 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

22 Sicherheitskonzepte

22.1 Zentrale Elemente der Java-Sicherheit

22.1.1 Security-API der Java SE

22.1.2 Cryptographic Service Providers

22.2 Der Sandkasten (Sandbox)

22.3 Sicherheitsmanager (Security Manager)

22.3.1 Der Sicherheitsmanager bei Applets

22.3.2 Sicherheitsmanager aktivieren

22.3.3 Rechte durch Policy-Dateien vergeben

22.3.4 Erstellen von Rechtedateien mit dem grafischen Policy-Tool

22.3.5 Kritik an den Policies

22.4 Signierung

22.4.1 Warum signieren?

22.4.2 Digitale Ausweise und die Zertifizierungsstelle

22.4.3 Mit keytool Schlüssel erzeugen

22.4.4 Signieren mit jarsigner

22.5 Digitale Unterschriften *

22.5.1 Die MDx-Reihe

22.5.2 Secure Hash Algorithm (SHA)

22.5.3 Mit der Security-API einen Fingerabdruck berechnen

22.5.4 Die Klasse MessageDigest

22.6 Verschlüsseln von Daten(-strömen) *

22.6.1 Den Schlüssel, bitte

22.6.2 Verschlüsseln mit Cipher

22.6.3 Verschlüsseln von Datenströmen

22.7 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

23 Dienstprogramme für die Java-Umgebung

23.1 Programme des JDK

23.2 Monitoringprogramme vom JDK

23.2.1 jps

23.2.2 jstat

23.2.3 jmap

23.2.4 jstack

23.2.5 VisualVM

23.3 Programmieren mit der Tools-API

23.3.1 Eigene Doclets

23.4 Ant

23.4.1 Bezug und Installation von Ant

23.4.2 Das Build-Skript build.xml

23.4.3 Build den Build

23.4.4 Properties

23.4.5 Externe und vordefinierte Properties

23.4.6 Weitere Ant-Tasks

23.5 Disassembler, Decompiler und Obfuscator

23.5.1 Der Diassembler javap

23.5.2 Decompiler

23.5.3 Obfuscatoren

23.6 Weitere Dienstprogramme

23.6.1 Sourcecode Beautifier

23.6.2 Java-Programme als Systemdienst ausführen

23.7 Zum Weiterlesen



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.







<< zurück
  Zum Katalog
Zum Katalog: Java 7 – Mehr als eine Insel
Java 7 – Mehr als eine Insel
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java und XML






 Java und XML


Zum Katalog: Einstieg in Eclipse 3.7






 Einstieg in
 Eclipse 3.7


Zum Katalog: Android 3






 Android 3


Zum Katalog: NetBeans Platform 7






 NetBeans Platform 7


Zum Katalog: Java ist auch eine Insel






 Java ist
 auch eine Insel


Zum Katalog: Apps entwickeln für Android 4






 Apps entwickeln
 für Android 4


Zum Katalog: Java 7






 Java 7


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2012
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de