ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Java ist auch eine Insel

دانلود کتاب جاوا نیز جزیره ای است

Java ist auch eine Insel

مشخصات کتاب

Java ist auch eine Insel

دسته بندی: برنامه نویسی: زبان های برنامه نویسی
ویرایش: 10., aktualisierte und überarb. Aufl 
نویسندگان:   
سری: Galileo computing 
ISBN (شابک) : 383621802X, 9783836218023 
ناشر: Galileo Press 
سال نشر: 2012 
تعداد صفحات: 1309 
زبان: German 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 10 مگابایت 

قیمت کتاب (تومان) : 45,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 13


در صورت تبدیل فایل کتاب Java ist auch eine Insel به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب جاوا نیز جزیره ای است نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی درمورد کتاب به خارجی



فهرست مطالب

Buchcover......Page 1
Java ist auch eine Insel: Das umfassende Handbuch, 10. Auflage......Page 2
Liebe Leserin, lieber Leser......Page 3
Auf einen Blick......Page 4
Impressum......Page 5
Inhalt......Page 6
Vorwort......Page 30
1.1 Historischer Hintergrund......Page 48
Wo ist die Sonne? Oracle übernimmt Sun Microsystems 2010......Page 50
1.2.2 Ausführung des Bytecodes durch eine virtuelle Maschine......Page 51
Java on a chip......Page 52
1.2.3 Plattformunabhängigkeit......Page 53
1.2.4 Java als Sprache, Laufzeitumgebung und Standardbibliothek......Page 54
1.2.5 Objektorientierung in Java......Page 55
1.2.7 Java ist schnell: Optimierung und Just-in-Time Compilation......Page 56
1.2.9 Zeiger und Referenzen......Page 58
1.2.11 Ausnahmebehandlung......Page 60
1.2.12 Einfache Syntax der Programmiersprache Java......Page 61
Kein Präprozessor für Textersetzungen *......Page 62
1.2.13 Java ist Open Source......Page 63
1.2.14 Wofür sich Java weniger eignet......Page 65
Java und C(++)......Page 66
Java und C#/.NET......Page 67
Java auf der Serverseite statt auf der Clientseite und im Browser......Page 69
RIA mit JavaFX......Page 70
1.2.17 Features, Enhancements (Erweiterungen) und ein JSR......Page 72
1.2.18 Die Entwicklung von Java und seine Zukunftsaussichten......Page 73
Versionen der Java SE......Page 74
1.3.2 Java für die Kleinen......Page 76
1.3.4 Java für die Großen......Page 77
1.3.5 Echtzeit-Java (Real-time Java)......Page 78
JDK und JRE......Page 79
1.4.2 Download des JDK......Page 80
1.4.3 Java SE unter Windows installieren......Page 81
Schritt-für-Schritt-Installation......Page 82
Programme im bin-Verzeichnis......Page 84
1.5.1 Ein Quadratzahlen-Programm......Page 85
1.5.2 Der Compilerlauf......Page 87
Den Suchpfad für Windows setzen......Page 88
1.5.4 Häufige Compilerund Interpreterprobleme......Page 89
1.6.1 Die Entwicklungsumgebung Eclipse......Page 90
1.6.2 NetBeans von Oracle......Page 91
1.6.4 Ein Wort zu Microsoft, Java und zu J++, J#......Page 92
1.7 Eclipse im Speziellen......Page 93
1.7.1 Eclipse starten......Page 95
1.7.2 Das erste Projekt anlegen......Page 97
1.7.3 Eine Klasse hinzufügen......Page 101
1.7.4 Übersetzen und ausführen......Page 103
1.7.6 Start eines Programms ohne Speicheraufforderung......Page 104
1.7.7 Projekt einfügen, Workspace für die Programme wechseln......Page 105
1.8.1 NetBeans-Bundles......Page 107
1.8.2 NetBeans installieren......Page 108
1.8.4 Ein neues NetBeans-Projekt anlegen......Page 109
1.8.6 Einstellungen......Page 111
1.9 Zum Weiterlesen......Page 112
2.1.1 Token......Page 114
Whitespace......Page 115
2.1.3 Bezeichner......Page 116
Aufbau der Bezeichner......Page 117
2.1.4 Literale......Page 118
Schlüsselwörter und Literale in Java......Page 119
2.1.6 Zusammenfassung der lexikalischen Analyse......Page 120
Unterschiedliche Kommentartypen......Page 121
Kommentare mit Stil......Page 122
2.2.1 Was sind Anweisungen?......Page 123
2.2.2 Klassendeklaration......Page 124
2.2.3 Die Reise beginnt am main()......Page 125
2.2.4 Der erste Methodenaufruf: println()......Page 126
2.2.6 Mehr zu print(), println() und printf() für Bildschirmausgaben......Page 127
Überladene Methoden......Page 128
2.2.7 Die API-Dokumentation......Page 129
2.2.8 Ausdrücke......Page 131
2.2.9 Ausdrucksanweisung......Page 132
System.out und System.err......Page 133
2.2.11 Modifizierer......Page 134
Geschachtelte Blöcke......Page 135
2.3 Datentypen, Typisierung, Variablen und Zuweisungen......Page 136
2.3.1 Primitive Datentypen im Überblick......Page 137
2.3.2 Variablendeklarationen......Page 140
Variablendeklaration mit Wertinitialisierung......Page 141
Zinsen berechnen als Beispiel zur Variablendeklaration, -initialisierung & -ausgabe......Page 142
2.3.3 Konsoleneingaben......Page 143
Zinsberechnung mit der Benutzereingabe......Page 144
2.3.4 Fließkommazahlen mit den Datentypen float und double......Page 145
Noch genauere Auflösung bei Fließkommazahlen *......Page 146
Wer wird mehrfacher Milliardär? Der Datentyp long......Page 147
Der Datentyp short *......Page 148
2.3.7 Unterstriche in Zahlen *......Page 149
2.3.8 Alphanumerische Zeichen......Page 150
2.3.9 Gute Namen, schlechte Namen......Page 151
2.3.10 Initialisierung von lokalen Variablen......Page 152
2.4.1 Zuweisungsoperator......Page 153
Zuweisungen sind auch Ausdrücke......Page 154
Numerische Umwandlung......Page 155
Strafe bei Division durch null......Page 156
Der Restwert-Operator % *......Page 157
Rundungsfehler *......Page 158
2.4.3 Unäres Minus und Plus......Page 159
2.4.4 Zuweisung mit Operation......Page 160
Vorher oder nachher?......Page 161
Einige Kuriositäten *......Page 162
2.4.6 Die relationalen Operatoren und die Gleichheitsoperatoren......Page 163
Kaum Verwechslungsprobleme durch == und =......Page 164
2.4.7 Logische Operatoren: Nicht, Und, Oder, Xor......Page 165
Nicht-Kurzschluss-Operatoren *......Page 167
2.4.9 Der Rang der Operatoren in der Auswertungsreihenfolge......Page 168
Linksund Rechtsassoziativität *......Page 170
Automatische Anpassung der Größe......Page 171
Explizite Typanpassung......Page 172
Automatische Typanpassung bei Berechnungen mit byte und short auf int *......Page 173
Typanpassung beim Verbundoperator *......Page 175
2.4.11 Überladenes Plus für Strings......Page 176
2.4.12 Operator vermisst *......Page 177
2.5.1 Die if-Anweisung......Page 178
if-Abfragen und Blöcke......Page 179
Zusammengesetzte Bedingungen......Page 180
2.5.2 Die Alternative mit einer if-else-Anweisung wählen......Page 181
Das Dangling-Else-Problem......Page 182
Das böse Semikolon......Page 183
Mehrfachverzweigung beziehungsweise geschachtelte Alternativen......Page 184
2.5.3 Der Bedingungsoperator......Page 185
Geschachtelte Anwendung vom Bedingungsoperator *......Page 186
Der Bedingungsoperator ist kein lvalue *......Page 187
switch bei Ganzzahlen (und somit auch chars)......Page 188
Alles andere mit default abdecken......Page 190
switch hat Durchfall......Page 191
2.6 Schleifen......Page 193
2.6.1 Die while-Schleife......Page 194
Endlosschleifen......Page 195
2.6.2 Die do-while-Schleife......Page 196
Äquivalenz einer whileund einer do-while-Schleife *......Page 197
2.6.3 Die for-Schleife......Page 198
Schleifenzähler......Page 199
Eine Endlosschleife mit for......Page 200
for-Schleifen und ihr Komma-Operator *......Page 201
2.6.4 Schleifenbedingungen und Vergleiche mit ==......Page 202
Rechenungenauigkeiten......Page 203
Wie Bereichsangaben schreiben? *......Page 204
2.6.5 Ausbruch planen mit break und Wiedereinstieg mit continue......Page 205
continue......Page 206
2.6.6 break und continue mit Marken *......Page 209
break mit einer Marke für Schleifen......Page 210
Mit dem break und einer Marke aus dem switch aussteigen......Page 211
2.7 Methoden einer Klasse......Page 213
2.7.1 Bestandteil einer Methode......Page 214
Die Signatur einer Methode......Page 215
2.7.2 Signatur-Beschreibung in der Java-API......Page 216
2.7.3 Aufruf einer Methode......Page 217
2.7.4 Methoden ohne Parameter deklarieren......Page 218
2.7.5 Statische Methoden (Klassenmethoden)......Page 219
2.7.6 Parameter, Argument und Wertübergabe......Page 220
Wertübergabe per Call by Value......Page 221
2.7.7 Methoden vorzeitig mit return beenden......Page 222
2.7.8 Nicht erreichbarer Quellcode bei Methoden *......Page 223
2.7.9 Methoden mit Rückgaben......Page 224
Mehrere Ausstiegspunke mit return......Page 225
Schummeln ohne return geht nicht......Page 226
Fallunterscheidungen mit Ausschlussprinzip *......Page 227
2.7.10 Methoden überladen......Page 228
print() und println() sind überladen *......Page 229
Negative Beispiele und schlaue Leute *......Page 230
2.7.11 Sichtbarkeit und Gültigkeitsbereich......Page 231
2.7.13 Finale lokale Variablen......Page 233
2.7.14 Rekursive Methoden *......Page 234
Unendliche Rekursionen......Page 235
Unterschiedliche Rekursionsformen......Page 236
2.7.15 Die Türme von Hanoi *......Page 238
2.8 Zum Weiterlesen......Page 241
3.1.1 Warum überhaupt OOP?......Page 242
3.1.2 Denk ich an Java, denk ich an Wiederverwendbarkeit......Page 243
3.2 Eigenschaften einer Klasse......Page 244
3.3 Die UML (Unified Modeling Language) *......Page 245
3.3.1 Hintergrund und Geschichte der UML......Page 246
Objektdiagramm......Page 247
3.3.3 UML-Werkzeuge......Page 248
UML-Produkte......Page 249
Der Zusammenhang von new, Heap und Garbage-Collector......Page 250
Heap und Stack......Page 251
3.4.3 Deklarieren von Referenzvariablen......Page 252
3.4.4 Zugriff auf Objektattribute und -methoden mit dem ».«......Page 253
Tür und Spieler auf dem Spielbrett......Page 254
toString()......Page 256
Objekterzeugung ohne Variablenzuweisung......Page 257
Ein paar Worte über Vererbung und die API-Dokumentation......Page 258
Sind zwei Punkte gleich?......Page 260
3.4.6 Konstruktoren nutzen......Page 262
3.5 ZZZZZnake......Page 263
Die Paketnamen java, javax......Page 266
3.6.1 Volle Qualifizierung und import-Deklaration......Page 267
3.6.2 Mit import p1.p2.* alle Typen eines Pakets erreichen......Page 268
3.6.3 Hierarchische Strukturen über Pakete......Page 269
3.6.4 Die package-Deklaration......Page 270
3.6.5 Unbenanntes Paket (default package)......Page 271
3.6.6 Klassen mit gleichen Namen in unterschiedlichen Paketen *......Page 272
3.6.8 Statischer Import *......Page 273
Mehrere Typen statisch importieren......Page 274
3.7.1 Die null-Referenz......Page 275
Auf null geht nix, nur die NullPointerException......Page 276
null-Test und Kurzschluss-Operatoren......Page 277
3.7.3 Zuweisungen bei Referenzen......Page 279
3.7.4 Methoden mit nicht-primitiven Parametern......Page 280
Wertübergabe und Referenzübergabe per »Call by Value«......Page 283
Final deklarierte Referenz-Parameter und das fehlende const......Page 284
3.7.5 Identität von Objekten......Page 285
Es gibt immer ein equals() *......Page 286
Es gibt immer ein equals(): die Oberklasse Object und ihr equals() *......Page 287
3.8.1 Grundbestandteile......Page 288
3.8.2 Deklaration von Arrays......Page 289
3.8.4 Die Länge eines Arrays über das Attribut length auslesen......Page 290
3.8.5 Zugriff auf die Elemente über den Index......Page 291
Strings sind keine Arrays *......Page 292
3.8.6 Array-Objekte mit new erzeugen......Page 293
3.8.7 Typische Feldfehler......Page 294
3.8.8 Feld-Objekte als Parametertyp......Page 295
3.8.9 Vorinitialisierte Arrays......Page 296
3.8.10 Die erweiterte for-Schleife......Page 297
Felder mit Strings durchsuchen......Page 299
Zufällige Spielerpositionen erzeugen......Page 300
Feld-Objekte mit new aufbauen......Page 302
length() bei mehrdimensionalen Feldern......Page 303
Zweidimensionale Felder mit ineinandergeschachtelten Schleifen ablaufen......Page 304
Nützlicher Kommaoperator......Page 306
Initialisierung der Unterfelder......Page 307
Das pascalsche Dreieck......Page 308
3.8.14 Die Wahrheit über die Array-Initialisierung *......Page 310
3.8.15 Mehrere Rückgabewerte *......Page 311
3.8.16 Methode mit variabler Argumentanzahl (Vararg)......Page 312
3.8.17 Klonen kann sich lohnen – Arrays vermehren *......Page 314
3.8.18 Feldinhalte kopieren *......Page 315
3.8.19 Die Klasse Arrays zum Vergleichen, Füllen, Suchen, Sortieren nutzen......Page 316
String-Repräsentation eines Feldes......Page 317
Sortieren......Page 318
Felder mit Arrays.equals() und Arrays.deepEquals() vergleichen *......Page 319
Füllen von Feldern *......Page 320
Feldabschnitte kopieren *......Page 321
Halbierungssuche *......Page 322
Felder zu Listen mit Arrays.asList() – praktisch für die Suche und zum Vergleichen *......Page 324
3.8.20 Eine lange Schlange......Page 326
3.9.1 Korrekte Deklaration der Startmethode......Page 329
3.9.2 Kommandozeilenargumente verarbeiten......Page 330
3.9.3 Der Rückgabetyp von main() und System.exit() *......Page 331
3.10.1 Generics......Page 333
3.10.3 Eigene Metadaten setzen......Page 334
3.10.4 Annotationstypen @Override, @Deprecated, @SuppressWarnings......Page 335
@Deprecated......Page 336
@SuppressWarnings......Page 337
3.11 Zum Weiterlesen......Page 340
4.1.1 ASCII......Page 342
4.1.2 ISO/IEC 8859-1......Page 343
4.1.3 Unicode......Page 344
Unicode-Tabellen unter Windows *......Page 345
4.1.4 Unicode-Zeichenkodierung......Page 346
4.1.5 Escape-Sequenzen/Fluchtsymbole......Page 347
4.1.6 Schreibweise für Unicode-Zeichen und Unicode-Escapes......Page 348
4.1.7 Unicode 4.0 und Java *......Page 350
4.2.1 Ist das so?......Page 351
Testen, ob eine Zeichenkette nur aus Ziffern besteht......Page 352
Die wichtigsten isXXX()-Methoden im Überblick......Page 353
4.2.2 Zeichen in Großbuchstaben/Kleinbuchstaben konvertieren......Page 354
4.2.3 Ziffern einer Basis *......Page 356
Die Klasse String......Page 358
Bestehen Strings aus char-Feldern?......Page 359
4.4.1 String-Literale als String-Objekte für konstante Zeichenketten......Page 360
4.4.3 String-Länge und Test auf Leerstring......Page 362
4.4.4 Zugriff auf ein bestimmtes Zeichen mit charAt()......Page 363
4.4.5 Nach enthaltenen Zeichen und Zeichenfolgen suchen......Page 364
Fundstelle mit indexOf() zurückgeben......Page 365
Vom Ende an suchen......Page 366
Anzahl der Teilstrings einer Zeichenkette *......Page 367
4.4.6 Das Hangman-Spiel......Page 368
Die Methode equals()......Page 370
Die Methode equalsIgnoreCase()......Page 371
Lexikografische Vergleiche mit Größer/kleiner-Relation......Page 372
String-Teile mit regionMatches() vergleichen *......Page 373
4.4.8 Phonetische Vergleiche *......Page 374
Teile eines Strings als String mit substring() erfragen......Page 375
String vor/nach einem Trennstring *......Page 376
Mit getChars() Zeichenfolgen als Array aus dem String extrahieren *......Page 378
Anhängen an Strings......Page 379
Groß-/Kleinschreibung......Page 380
Leerraum entfernen......Page 381
4.4.11 Suchen und ersetzen......Page 382
Suchen und ersetzen mit regulären Ausdrücken......Page 383
4.4.12 String-Objekte mit Konstruktoren neu anlegen *......Page 384
Über den Konstruktoraufruf new String(String)......Page 387
Strings im Konstantenpool......Page 388
Leerer String, Leer-String oder Null-String......Page 389
4.5.1 Unterschiedliche Typen in String-Repräsentationen konvertieren......Page 390
Die Methode valueOf(Object)......Page 391
4.5.2 Stringinhalt in einen primitiven Wert konvertieren......Page 392
parseXXX() und Leerzeichen *......Page 393
String-Repräsentationen aufbauen......Page 394
Parsen von String mit Radix......Page 396
Überblick......Page 398
4.6.1 Anlegen von StringBuilder/StringBuffer-Objekten......Page 399
4.6.4 Daten anhängen......Page 401
Einzelne Zeichen setzen......Page 403
Zeichenbereiche ersetzen......Page 404
4.6.6 Länge und Kapazität eines StringBuilder/StringBuffer-Objekts *......Page 405
equals() bei der String-Klasse......Page 406
equals() bei StringBuffer beziehungsweise StringBuilder?......Page 407
4.7 CharSequence als Basistyp *......Page 408
4.8 Reguläre Ausdrücke......Page 410
4.8.1 Pattern.matches() bzw. String#matches()......Page 411
Regeln für reguläre Ausdrücke......Page 412
4.8.2 Die Klassen Pattern und Matcher......Page 414
Pattern-Flags *......Page 416
Ränder und Grenzen testen *......Page 417
Multiline-Modus *......Page 419
4.8.3 Finden und nicht matchen......Page 420
4.8.4 Gierige und nicht gierige Operatoren *......Page 421
4.8.5 Mit MatchResult alle Ergebnisse einsammeln *......Page 422
4.8.6 Suchen und Ersetzen mit Mustern......Page 424
4.8.7 Hangman Version 2......Page 426
4.9.1 Splitten von Zeichenketten mit split()......Page 428
String.split() geht auf Pattern#split()......Page 429
4.9.2 Die Klasse Scanner......Page 430
Zeilenweises Einlesen einer Datei......Page 432
Der Nächste, bitte......Page 433
Trennzeichen definieren *......Page 435
Landessprachen *......Page 436
4.9.3 Die Klasse StringTokenizer *......Page 437
4.9.4 BreakIterator als Zeichen-, Wort-, Zeilenund Satztrenner *......Page 439
Beispiel für die drei BreakIterator-Typen......Page 440
Kodierungen über die Klasse String vornehmen......Page 443
4.10.2 Das Paket java.nio.charset und der Typ Charset......Page 444
Standards-Charsets......Page 445
Konvertieren in DOS-Latin-1......Page 446
4.10.4 XML/HTML-Entitys ausmaskieren......Page 447
4.10.5 Base64-Kodierung......Page 448
Beispiel......Page 449
4.11.1 Formatieren und Ausgeben mit format()......Page 450
System.out.printf()......Page 451
Pimp my String mit Format-Spezifizierern *......Page 452
Format-Spezifizierer für Datumswerte......Page 454
Positionsangaben......Page 455
4.11.2 Die Formatter-Klasse *......Page 456
4.11.3 Formatieren mit Masken *......Page 458
4.11.4 Format-Klassen......Page 460
Dezimalzahlformatierung mit DecimalFormat......Page 463
Währungen angeben und die Klasse Currency......Page 465
4.11.6 MessageFormat und Pluralbildung mit ChoiceFormat......Page 466
ChoiceFormat......Page 467
4.12.1 Die Klasse Collator......Page 468
Vergleichsarten......Page 470
4.12.2 Effiziente interne Speicherung für die Sortierung......Page 472
4.12.3 Normalisierung......Page 474
4.13 Zum Weiterlesen......Page 475
Eine ganz einfache Klassendeklaration......Page 476
5.1.1 Attribute deklarieren......Page 477
Gültigkeitsbereich, Sichtbarkeit und Lebensdauer......Page 478
5.1.2 Methoden deklarieren......Page 479
Objektorientierte und prozedurale Programmierung im Vergleich......Page 482
Überdeckte Objektvariablen nutzen......Page 484
this für kaskadierte Methoden *......Page 485
5.2.2 Kein Public Viewing – Passwörter sind privat......Page 488
5.2.3 Wieso nicht freie Methoden und Variablen für alle?......Page 490
5.2.4 Privat ist nicht ganz privat: Es kommt darauf an, wer’s sieht *......Page 491
5.2.6 Setter und Getter nach der JavaBeans-Spezifikation......Page 492
Zugriffsmethoden für den Spieler......Page 493
5.2.7 Paketsichtbar......Page 495
5.2.8 Zusammenfassung zur Sichtbarkeit......Page 497
Sichtbarkeit in der UML *......Page 498
Reihenfolge der Eigenschaften in Klassen *......Page 499
5.3.1 Warum statische Eigenschaften sinnvoll sind......Page 500
5.3.2 Statische Eigenschaften mit static......Page 501
5.3.3 Statische Eigenschaften über Referenzen nutzen? *......Page 502
5.3.4 Warum die Großund Kleinschreibung wichtig ist *......Page 503
5.3.5 Statische Variablen zum Datenaustausch *......Page 504
5.4 Konstanten und Aufzählungen......Page 506
5.4.1 Konstanten über öffentliche statische finale Variablen......Page 507
5.4.2 Typ(un)sichere Aufzählungen *......Page 508
Enums nutzen......Page 510
enum-Konstanten in switch......Page 511
Aufzählungen als inneren Typ deklarieren *......Page 512
Standard-Methoden der Enums *......Page 513
Konstruktordeklarationen......Page 514
Aufrufreihenfolge......Page 515
5.5.2 Der vorgegebene Konstruktor (default constructor)......Page 516
Vorgegebener und expliziter Standard-Konstruktor......Page 517
5.5.3 Parametrisierte und überladene Konstruktoren......Page 518
Wann der Compiler keinen vorgegebenen Konstruktor einfügt......Page 519
5.5.4 Copy-Konstruktor......Page 520
5.5.5 Einen anderen Konstruktor der gleichen Klasse mit this() aufrufen......Page 522
Einschränkungen von this() *......Page 524
Prinzipielle Arbeitsweise des Müllaufsammlers......Page 526
Die manuelle Nullung und Speicherlecks......Page 527
Singleton......Page 528
Fabrikmethoden......Page 529
5.6 Klassen- und Objektinitialisierung *......Page 530
5.6.1 Initialisierung von Objektvariablen......Page 531
Manuelle Nullung......Page 532
5.6.2 Statische Blöcke als Klasseninitialisierer......Page 533
Java-Programme ohne main()......Page 534
5.6.4 Eincompilierte Belegungen der Klassenvariablen......Page 535
5.6.5 Exemplarinitialisierer (Instanzinitialisierer)......Page 536
Mit Exemplarinitialisierern Konstruktoren vereinfachen......Page 537
Mehrere Exemplarinitialisierer......Page 538
Finale Werte aus dem Konstruktor belegen......Page 540
Konstante mit Dateiinhalt initialisieren......Page 541
Assoziationstypen......Page 542
Assoziationen in der UML......Page 543
5.7.2 Bidirektionale 1:1-Beziehungen......Page 544
Dynamische Datenstruktur ArrayList......Page 546
5.8 Vererbung......Page 548
5.8.2 Spielobjekte modellieren......Page 549
5.8.3 Die implizite Basisklasse java.lang.Object......Page 551
5.8.5 Die Sichtbarkeit protected......Page 552
5.8.6 Konstruktoren in der Vererbung und super()......Page 553
Deutschland sucht den super()-Aufruf......Page 554
super() auch bei parametrisierten Konstruktoren......Page 555
super() mit Argumenten füllen......Page 556
Der this()-und-super()-Konflikt *......Page 558
Zusammenfassung: Konstruktoren und Methoden......Page 559
Ist-eine-Art-von-Beziehung und die automatische Typanpassung......Page 560
Explizite Typanpassung......Page 561
5.9.2 Das Substitutionsprinzip......Page 562
5.9.3 Typen mit dem instanceof-Operator testen......Page 564
instanceof und null......Page 566
Überschreiben von toString()......Page 567
Garantiert überschrieben? *......Page 570
5.10.2 Mit super an die Eltern......Page 571
Eigenschaften der super-Referenz *......Page 573
Nicht überschreibbare (finale) Methoden......Page 574
5.10.4 Kovariante Rückgabetypen......Page 576
5.10.5 Array-Typen und Kovarianz *......Page 577
5.11 Drum prüfe, wer sich ewig dynamisch bindet......Page 578
5.11.1 Gebunden an toString()......Page 579
5.11.2 Implementierung von System.out.println(Object)......Page 581
5.11.3 Nicht dynamisch gebunden bei privaten, statischen und finalen Methoden......Page 582
5.11.4 Dynamisch gebunden auch bei Konstruktoraufrufen *......Page 584
5.11.5 Eine letzte Spielerei mit Javas dynamischer Bindung und überschatteten Attributen *......Page 586
5.12.1 Abstrakte Klassen......Page 588
Basistyp abstrakte Klasse......Page 589
Mit Spielobjekten muss sich spielen lassen......Page 590
Vererben von abstrakten Methoden......Page 592
5.13 Schnittstellen......Page 594
5.13.1 Schnittstellen deklarieren......Page 595
5.13.2 Implementieren von Schnittstellen......Page 596
5.13.3 Markierungsschnittstellen *......Page 598
5.13.4 Ein Polymorphie-Beispiel mit Schnittstellen......Page 599
5.13.5 Die Mehrfachvererbung bei Schnittstellen *......Page 600
5.13.6 Keine Kollisionsgefahr bei Mehrfachvererbung *......Page 605
5.13.7 Erweitern von Interfaces – Subinterfaces......Page 606
5.13.8 Konstantendeklarationen bei Schnittstellen......Page 607
Vererbung und Überschattung von statischen Variablen *......Page 608
5.13.9 Initialisierung von Schnittstellenkonstanten *......Page 610
Konstanteninitialisierung über anonyme innere Klassen, Lösung A......Page 611
Konstanteninitialisierung über statische innere Klassen, Lösung B......Page 612
Konstanteninitialisierung über statische innere Klassen, Lösung C......Page 613
5.13.10 Abstrakte Klassen und Schnittstellen im Vergleich......Page 614
5.14 Zum Weiterlesen......Page 615
6.1 Problembereiche einzäunen......Page 616
6.1.1 Exceptions in Java mit try und catch......Page 617
6.1.2 Eine NumberFormatException auffangen......Page 618
Dokumentierte Fehler......Page 619
Eine NumberFormatException auffangen......Page 620
6.1.4 Eigenschaften vom Exception-Objekt......Page 621
Bitte nicht schlucken: leere catch-Blöcke......Page 622
6.1.5 Wiederholung abgebrochener Bereiche *......Page 623
6.1.6 Mehrere Ausnahmen auffangen......Page 624
6.1.7 throws im Methodenkopf angeben......Page 627
Die ignorante Version......Page 628
Der gut gemeinte Versuch......Page 629
Ab jetzt wird scharf geschlossen......Page 630
Ein try ohne catch, aber ein try-finally......Page 632
6.2 RuntimeException muss nicht aufgefangen werden......Page 634
6.2.1 Beispiele für RuntimeException-Klassen......Page 635
6.3 Die Klassenhierarchie der Fehler......Page 636
6.3.2 Oberausnahmen auffangen......Page 637
6.3.3 Schon gefangen?......Page 639
6.3.4 Alles geht als Exception durch......Page 640
Wenn main() alles weiterleitet......Page 641
Multi-catch......Page 642
6.4 Harte Fehler: Error *......Page 646
6.5.1 Mit throw Ausnahmen auslösen......Page 647
UnsupportedOperationException......Page 650
IndexOutOfBoundsException......Page 651
6.5.3 Parameter testen und gute Fehlermeldungen......Page 652
null-Prüfungen......Page 653
6.5.4 Neue Exception-Klassen deklarieren......Page 654
6.5.5 Eigene Ausnahmen als Unterklassen von Exception oder RuntimeException?......Page 656
6.5.6 Ausnahmen abfangen und weiterleiten *......Page 658
6.5.7 Aufrufstack von Ausnahmen verändern *......Page 660
6.5.8 Präzises rethrow *......Page 661
Problemstellung......Page 662
Neu seit Java 7: eine präzisere Typprüfung......Page 664
6.5.9 Geschachtelte Ausnahmen *......Page 665
Geprüfte Ausnahmen in ungeprüfte Ausnahmen verpacken......Page 666
6.6 Automatisches Ressourcen-Management (try mit Ressourcen)......Page 668
6.6.1 try mit Ressourcen......Page 669
6.6.2 Ausnahmen vom close() bleiben bestehen......Page 670
6.6.3 Die Schnittstelle AutoCloseable......Page 671
6.6.4 Mehrere Ressourcen nutzen......Page 672
6.6.5 Unterdrückte Ausnahmen *......Page 674
Spezielle Methoden in Throwable *......Page 676
6.7 Besonderheiten bei der Ausnahmebehandlung *......Page 677
6.7.2 Ausnahmen und Rückgaben verschwinden: Das Duo »return« und »finally«......Page 678
6.7.3 throws bei überschriebenen Methoden......Page 680
Übertriebene throws-Klauseln......Page 682
6.8 Den Stack-Trace erfragen *......Page 683
6.8.1 StackTraceElement......Page 684
6.8.2 printStackTrace()......Page 685
6.8.3 StackTraceElement vom Thread erfragen......Page 686
6.9 Assertions *......Page 687
6.9.1 Assertions in eigenen Programmen nutzen......Page 688
6.9.2 Assertions aktivieren......Page 689
6.10 Zum Weiterlesen......Page 691
7.1 Geschachtelte (innere) Klassen, Schnittstellen, Aufzählungen......Page 692
7.2 Statische innere Klassen und Schnittstellen......Page 693
7.3 Mitgliedsoder Elementklassen......Page 695
7.3.1 Exemplare innerer Klassen erzeugen......Page 696
7.3.2 Die this-Referenz......Page 697
7.3.3 Vom Compiler generierte Klassendateien *......Page 698
7.3.5 Innere Klassen greifen auf private Eigenschaften zu......Page 699
Zugriffsrechte *......Page 700
7.4 Lokale Klassen......Page 701
7.5 Anonyme innere Klassen......Page 702
7.5.2 Nutzung innerer Klassen für Threads *......Page 704
7.5.3 Konstruktoren innerer anonymer Klassen *......Page 705
7.6 Zugriff auf lokale Variablen aus lokalen inneren und anonymen Klassen *......Page 706
7.7 this in Unterklassen *......Page 708
8.1.1 Natürlich geordnet oder nicht?......Page 710
8.1.2 Die Schnittstelle Comparable......Page 711
8.1.4 Rückgabewerte kodieren die Ordnung......Page 712
Den größten Raum einer Sammlung finden......Page 713
8.1.5 Aneinanderreihung von Comparatoren *......Page 714
Comparatoren in eine Vergleichskette setzen......Page 715
8.2 Wrapper-Klassen und Autoboxing......Page 719
8.2.1 Wrapper-Objekte erzeugen......Page 720
Wrapper-Objekte sind immutable......Page 721
8.2.2 Konvertierungen in eine String-Repräsentation......Page 722
8.2.3 Die Basisklasse Number für numerische Wrapper-Objekte......Page 723
8.2.4 Vergleiche durchführen mit compare(), compareTo(), equals()......Page 725
Gleichheitstest über equals()......Page 727
8.2.5 Die Klasse Integer......Page 728
8.2.6 Die Klassen Double und Float für Fließkommazahlen......Page 730
8.2.7 Die Long-Klasse......Page 731
8.2.8 Die Boolean-Klasse......Page 732
8.2.9 Autoboxing: Boxing und Unboxing......Page 733
Boxing für dynamische Datenstrukturen (Ausblick)......Page 734
Autoboxing bei Feldern?......Page 735
Mehr Probleme als Lösungen durch Autoboxing? *......Page 736
8.3.1 Klassenobjekte......Page 738
8.3.2 Objektidentifikation mit toString()......Page 739
Standardimplementierung......Page 740
8.3.3 Objektgleichheit mit equals() und Identität......Page 741
equals()-Methode überschreiben......Page 742
Beispiel einer eigenen equals()-Methode......Page 743
Das Problem der Symmetrie *......Page 744
8.3.4 Klonen eines Objekts mit clone() *......Page 746
Eine eigene clone()-Methode......Page 747
Keine Klone bitte!......Page 750
Spieler mit Hash-Funktion......Page 752
Tiefe oder flache Vergleiche/Hash-Werte......Page 755
equals()und hashCode()-Berechnung bei (mehrdimensionalen) Arrays......Page 756
8.3.6 System.identityHashCode() und das Problem der nicht-eindeutigen Objektverweise *......Page 758
Abbilden von Objektverweisen in Datenbanken oder Dateien......Page 760
8.3.7 Aufräumen mit finalize() *......Page 762
super.finalize()......Page 763
Eingebaute null-Tests für equals()/hashCode()......Page 765
Objects.toString()......Page 766
null-Prüfungen mit eingebauter Ausnahmebehandlung......Page 767
8.5.1 Methoden auf Enum-Objekten......Page 768
String-Repräsentation......Page 769
Ordinalzahl......Page 770
8.5.2 enum mit eigenen Konstruktoren und Methoden *......Page 772
enum für Singleton nutzen......Page 773
enum mit Konstruktoren......Page 774
enum mit überschriebenen Methoden......Page 775
enum kann Schnittstellen implementieren......Page 777
8.6.1 Die Schnittstelle Iterable......Page 778
8.6.2 Einen eigenen Iterable implementieren *......Page 779
8.7 Zum Weiterlesen......Page 781
9.1.1 Mensch versus Maschine: Typprüfung des Compilers und der Laufzeitumgebung......Page 782
9.1.2 Taschen......Page 783
9.1.3 Generische Typen deklarieren......Page 786
9.1.4 Generics nutzen......Page 787
Geschachtelte Generics......Page 789
9.1.5 Diamonds are forever......Page 790
Einsatzgebiete des Diamanten......Page 791
9.1.6 Generische Schnittstellen......Page 793
Nicht-generischer Klassentyp löst Generics bei der Implementierung auf......Page 794
9.1.7 Generische Methoden/Konstruktoren und Typ-Inferenz......Page 795
Ganz zufällig das eine oder andere Argument......Page 796
Der Compiler auf der Suche nach Gemeinsamkeiten......Page 797
Knappe Fabrikmethoden......Page 798
Generische Methoden mit explizitem Typparameter *......Page 799
9.2.1 Realisierungsmöglichkeiten......Page 800
9.2.2 Typlöschung (Type Erasure)......Page 801
Das große Ziel: Interoperabilität......Page 802
9.2.3 Probleme aus der Typlöschung......Page 803
Kein instanceof......Page 804
Kein .class für generische Typen und keine Class-Objekte mit Typparameter zur Laufzeit......Page 805
Keine statischen Eigenschaften......Page 806
Es lassen sich keine Arrays generischer Klassen bilden......Page 807
9.2.4 Raw-Type......Page 808
Annotation SuppressWarnings......Page 810
9.3.1 Einfache Einschränkungen mit extends......Page 811
Typeinschränkung für gemeinsame Methoden......Page 813
9.3.2 Weitere Obertypen mit &......Page 814
9.4.2 Parametrisierter Typ bei Typvariable ......Page 815
Beispielimplementierungen für den parametrisierten Typ......Page 816
Nutzen von StringIterable und WebIterable......Page 817
Zusammenfassung......Page 818
9.5.1 Arrays sind invariant......Page 819
9.5.2 Generics sind kovariant......Page 820
9.5.3 Wildcards mit ?......Page 821
9.5.4 Bounded Wildcards......Page 823
Beispiel mit Upper-bound-Wildcard-Typ......Page 825
9.5.5 Bounded-Wildcard-Typen und Bounded-Typvariablen......Page 827
Auf Bounded-Wildcard-Typen in Rückgaben verzichten......Page 828
9.5.6 Das LESS-Prinzip......Page 830
Wildcard-Capture......Page 831
9.5.7 Enum> *......Page 833
9.6.1 Typ-Token......Page 835
Lösungen mit dem Typ-Token......Page 836
9.6.2 Super-Type-Token......Page 837
9.6.3 Generics und Arrays......Page 838
Reflection hilft......Page 839
Brückenmethode wegen Typvariablen in Parametern......Page 840
Brückenmethode wegen kovarianten Rückgabetypen......Page 841
Brückenmethode wegen einer Typvariable in der Rückgabe......Page 845
10.1 Architektur, Design und Implementierung......Page 848
10.2 Design-Pattern (Entwurfsmuster)......Page 849
10.2.2 Das Beobachter-Pattern (Observer/Observable)......Page 850
Die Klasse Observable......Page 851
Die Schnittstelle Observer......Page 854
Party-Beispiel mit Observer/Observable......Page 855
Schwierigkeiten von Observer/Observable......Page 856
10.2.3 Ereignisse über Listener......Page 857
Radios spielen Werbung......Page 858
10.3 JavaBean......Page 862
10.3.1 Properties (Eigenschaften)......Page 863
10.3.3 Indizierte Eigenschaften......Page 864
10.3.4 Gebundene Eigenschaften und PropertyChangeListener......Page 865
10.3.5 Veto-Eigenschaften – dagegen!......Page 868
10.4 Zum Weiterlesen......Page 873
11.1.1 Übersicht über die Pakete der Standardbibliothek......Page 874
Offizielle Schnittstelle (java und javax-Pakete)......Page 875
Standard Extension API (javax-Pakete)......Page 876
11.2.1 Sprachen und Regionen über Locale-Objekte......Page 877
Konstanten für einige Länder und Sprachen......Page 878
Methoden von Locale......Page 879
11.3.1 Objekte erzeugen und Methoden nutzen......Page 881
11.3.2 Date-Objekte sind nicht immutable......Page 883
11.4.1 Die abstrakte Klasse Calendar......Page 884
11.4.2 Der gregorianische Kalender......Page 886
11.4.3 Calendar nach Date und Millisekunden fragen......Page 888
11.4.4 Abfragen und Setzen von Datumselementen über Feldbezeichner......Page 889
Werte relativ setzen......Page 892
11.5.1 Woher die kleinen Klassen kommen......Page 893
Die Suchorte......Page 894
11.5.2 Setzen des Klassenpfades......Page 895
11.5.3 Die wichtigsten drei Typen von Klassenladern......Page 896
11.5.4 Die Klasse java.lang.ClassLoader *......Page 897
11.5.5 Hot Deployment mit dem URL-Classloader *......Page 898
Gleiche Klasse mehrfach laden......Page 899
11.5.6 Das Verzeichnis jre/lib/endorsed *......Page 902
11.6 Die Utility-Klasse System und Properties......Page 903
11.6.1 Systemeigenschaften der Java-Umgebung......Page 904
API-Dokumentation......Page 905
11.6.3 Eigene Properties von der Konsole aus setzen *......Page 906
Boolean.getBoolean()......Page 908
11.6.4 Umgebungsvariablen des Betriebssystems *......Page 909
11.6.5 Einfache Zeitmessung und Profiling *......Page 911
11.7.1 Grafischer Eingabedialog über JOptionPane......Page 914
11.7.2 Geschützte Passwort-Eingaben mit der Klasse Console *......Page 916
11.8 Ausführen externer Programme *......Page 917
Ein Objekt vom Typ Process übernimmt die Prozesskontrolle......Page 918
DOS-Programme aufrufen......Page 919
Umgebungsvariablen......Page 920
Auf das Ende warten......Page 921
Process-Ströme in Dateien umlenken......Page 922
11.8.2 Einen Browser, E-Mail-Client oder Editor aufrufen......Page 923
11.9.1 Benutzereinstellungen mit der Preferences-API......Page 925
11.9.2 Einträge einfügen, auslesen und löschen......Page 927
11.9.4 Auf Ereignisse horchen......Page 930
Registry-Zugriff selbst gebaut......Page 932
11.10 Zum Weiterlesen......Page 933
12.1 Nebenläufigkeit......Page 934
12.1.1 Threads und Prozesse......Page 935
12.1.2 Wie parallele Programme die Geschwindigkeit steigern können......Page 936
12.2 Threads erzeugen......Page 938
12.2.1 Threads über die Schnittstelle Runnable implementieren......Page 939
12.2.2 Thread mit Runnable starten......Page 940
12.2.3 Die Klasse Thread erweitern......Page 942
Erweitern von Thread oder Implementieren von Runnable?......Page 944
12.3.2 Wer bin ich?......Page 945
12.3.3 Schläfer gesucht......Page 946
12.3.4 Mit yield() auf Rechenzeit verzichten......Page 948
12.3.5 Der Thread als Dämon......Page 949
Wie ein Thread in Java zum Dämon wird......Page 950
Wenn der Thread einen Fehler melden soll......Page 951
Die Methoden interrupt() und isInterrupted()......Page 952
12.3.8 UncaughtExceptionHandler für unbehandelte Ausnahmen......Page 954
12.4 Der Ausführer (Executor) kommt......Page 955
Konkrete Executoren......Page 956
12.4.2 Die Thread-Pools......Page 958
12.5 Synchronisation über kritische Abschnitte......Page 959
12.5.2 Probleme beim gemeinsamen Zugriff und kritische Abschnitte......Page 960
Nicht kritische Abschnitte......Page 961
12.5.3 Punkte parallel initialisieren......Page 962
12.5.4 Kritische Abschnitte schützen......Page 964
Java-Konstrukte zum Schutz der kritischen Abschnitte......Page 965
12.5.5 Kritische Abschnitte mit ReentrantLock schützen......Page 967
Die Schnittstelle java.util.concurrent.locks.Lock......Page 968
12.6 Zum Weiterlesen......Page 970
13.1 Datenstrukturen und die Collection-API......Page 972
13.1.2 Die Basis-Schnittstellen Collection und Map......Page 973
13.1.4 Das erste Programm mit Container-Klassen......Page 974
13.1.5 Die Schnittstelle Collection und Kernkonzepte......Page 976
Vergleiche im Allgemeinen auf Basis von equals()......Page 978
Die Schnittstelle List für Sequenzen......Page 979
Queue mit zwei Enden......Page 980
Die Schnittstelle Map......Page 981
13.1.7 Konkrete Container-Klassen......Page 982
Geschachtelte Generics......Page 983
13.2 Listen......Page 984
13.2.1 Erstes Listen-Beispiel......Page 985
13.3 Mengen (Sets)......Page 988
13.3.1 Ein erstes Mengen-Beispiel......Page 989
13.3.2 Methoden der Schnittstelle Set......Page 992
13.4.1 Die Klassen HashMap und TreeMap......Page 993
Die Klasse TreeMap und die Schnittstelle SortedMap/NavigableMap......Page 995
Daten einfügen......Page 996
Daten auslesen......Page 997
Einträge und die Map löschen......Page 998
13.5 Mit einem Iterator durch die Daten wandern......Page 999
13.5.1 Die Schnittstelle Iterator......Page 1000
Beim Iterator geht es immer nur vorwärts......Page 1001
13.5.2 Der Iterator kann (eventuell auch) löschen......Page 1002
13.6 Algorithmen in Collections......Page 1003
13.6.1 Die Bedeutung von Ordnung mit Comparator und Comparable......Page 1005
13.6.2 Sortieren......Page 1006
Strings sortieren, auch unabhängig von der Großund Kleinschreibung......Page 1007
Daten in umgekehrter Reihenfolge sortieren......Page 1008
Aufbauen, Schütteln, Beschneiden, Größensuche......Page 1009
Implementierung der Extremwertmethoden bei Comparable-Objekten......Page 1011
13.7 Zum Weiterlesen......Page 1012
14.1.1 SwingSet-Demos......Page 1014
Peer-Klassen......Page 1015
14.1.3 Java Foundation Classes......Page 1016
Bestandteile der Java Foundation Classes......Page 1017
Übersicht über Swing-Komponenten......Page 1018
14.1.4 Was Swing von AWT unterscheidet......Page 1019
Auswahl von GUI-Buildern......Page 1020
14.2.1 Projekt anlegen......Page 1021
14.2.2 Eine GUI-Klasse hinzufügen......Page 1023
14.2.3 Programm starten......Page 1025
14.2.4 Grafische Oberfläche aufbauen......Page 1026
Variablen umbenennen......Page 1029
Applikation beenden......Page 1031
Sliderwert und Textfeld synchronisieren......Page 1032
Timer starten......Page 1033
14.3 Fenster zur Welt......Page 1034
14.3.1 Swing-Fenster mit javax.swing.JFrame darstellen......Page 1035
14.3.2 Fenster schließbar machen – setDefaultCloseOperation()......Page 1036
14.3.3 Sichtbarkeit des Fensters......Page 1037
14.4 Beschriftungen (JLabel)......Page 1038
Grafik und Beschriftung......Page 1039
14.5.1 Die Ereignisquellen und Horcher (Listener) von Swing......Page 1040
Schritte zum richtigen Horchen......Page 1041
Die Schnittstelle WindowListener......Page 1042
Wer implementiert die Schnittstelle WindowListener?......Page 1043
Fenster-Schließ-Horcher......Page 1044
Fensterschließer registrieren......Page 1045
Der Unterschied zwischen windowClosing() und windowClosed() *......Page 1046
14.5.4 Adapterklassen nutzen......Page 1047
Auf Klicks reagieren......Page 1049
Mini-Multiplikationsrechner......Page 1050
14.6.1 Normale Schaltflächen (JButton)......Page 1052
Die JButton-API......Page 1054
14.6.2 Der aufmerksame ActionListener......Page 1055
14.7.1 Übersicht über Layoutmanager......Page 1056
14.7.2 Zuweisen eines Layoutmanagers......Page 1057
14.7.3 Im Fluss mit FlowLayout......Page 1058
14.7.4 BoxLayout......Page 1060
14.7.5 Mit BorderLayout in alle Himmelsrichtungen......Page 1061
14.7.6 Rasteranordnung mit GridLayout......Page 1064
API-Dokumentation......Page 1065
14.8 Textkomponenten......Page 1066
14.8.1 Text in einer Eingabezeile......Page 1067
14.8.2 Die Oberklasse der Text-Komponenten (JTextComponent)......Page 1068
14.9.1 Die paint()-Methode für das AWT-Frame......Page 1069
Der Grafikkontext Graphics......Page 1070
14.9.2 Die ereignisorientierte Programmierung ändert Fensterinhalte......Page 1071
14.9.3 Zeichnen von Inhalten auf ein JFrame......Page 1073
14.9.4 Linien......Page 1074
14.9.5 Rechtecke......Page 1075
14.9.6 Zeichenfolgen schreiben......Page 1076
14.9.7 Die Font-Klasse......Page 1077
14.9.8 Farben mit der Klasse Color......Page 1080
Zufällige Farbblöcke zeichnen......Page 1081
Vordefinierte Farben......Page 1083
14.10 Zum Weiterlesen......Page 1084
15.1 Datei und Verzeichnis......Page 1086
15.1.1 Dateien und Verzeichnisse mit der Klasse File......Page 1087
Namen erfragen und auflösen......Page 1088
15.1.2 Verzeichnis oder Datei? Existiert es?......Page 1090
Änderungsdatum einer Datei......Page 1091
15.1.4 Umbenennen und Verzeichnisse anlegen......Page 1092
15.1.5 Verzeichnisse auflisten und Dateien filtern......Page 1093
15.1.6 Dateien und Verzeichnisse löschen......Page 1094
15.2 Dateien mit wahlfreiem Zugriff......Page 1095
15.2.1 Ein RandomAccessFile zum Lesen und Schreiben öffnen......Page 1096
15.2.2 Aus dem RandomAccessFile lesen......Page 1097
15.2.3 Schreiben mit RandomAccessFile......Page 1098
15.2.5 Hin und her in der Datei......Page 1099
15.3.1 FileSystem und Path......Page 1101
Ein Path-Objekt aufbauen......Page 1102
Einfaches Einlesen und Schreiben von Dateien......Page 1103
15.4 Stream-Klassen und Reader/Writer am Beispiel von Dateien......Page 1105
15.4.1 Mit dem FileWriter Texte in Dateien schreiben......Page 1106
15.4.2 Zeichen mit der Klasse FileReader lesen......Page 1108
15.4.3 Kopieren mit FileOutputStream und FileInputStream......Page 1109
15.4.4 Datenströme über Files mit NIO.2 beziehen......Page 1111
Beispiel: Eine kleine PPM-Grafikdatei schreiben......Page 1112
15.5.2 Übersicht über Ein-/Ausgabeklassen......Page 1114
15.5.3 Die abstrakte Basisklasse OutputStream......Page 1117
Closeable......Page 1118
15.5.5 Die abstrakte Basisklasse InputStream......Page 1119
15.5.7 Die abstrakte Basisklasse Writer......Page 1121
15.5.8 Die abstrakte Basisklasse Reader......Page 1123
Sprünge und Markierungen......Page 1124
15.6.1 Streams als Filter verketten (verschachteln)......Page 1126
15.6.2 Gepufferte Ausgaben mit BufferedWriter und BufferedOutputStream......Page 1127
15.6.3 Gepufferte Eingaben mit BufferedReader/BufferedInputStream......Page 1129
Programm zur Anzeige von Dateien......Page 1130
Zeilen lesen mit BufferedReader und readLine()......Page 1131
15.7.1 Datenkonvertierung durch den OutputStreamWriter......Page 1132
15.7.2 Automatische Konvertierungen mit dem InputStreamReader......Page 1133
16.1 Auszeichnungssprachen......Page 1136
16.1.2 Extensible Markup Language (XML)......Page 1137
Verwendung von Tags......Page 1138
Wohlgeformt......Page 1139
Kopfdefinition......Page 1140
Document Type Definition (DTD)......Page 1141
Elementbeschreibung......Page 1142
Attributbeschreibung......Page 1143
Bezugnahme auf eine DTD......Page 1144
Party-Schema......Page 1145
Simple und komplexe Typen......Page 1146
16.2.4 Namensraum (Namespace)......Page 1148
16.2.5 XML-Applikationen *......Page 1149
16.3 Die Java-APIs für XML......Page 1150
16.3.4 Java Document Object Model (JDOM)......Page 1151
Java API for XML Parsing (JAXP)......Page 1152
16.3.6 DOM-Bäume einlesen mit JAXP *......Page 1153
16.4.1 Bean für JAXB aufbauen......Page 1154
16.4.2 JAXBContext und die Marshaller......Page 1155
16.4.3 Ganze Objektgraphen schreiben und lesen......Page 1157
16.5 XML-Dateien mit JDOM verarbeiten......Page 1159
16.5.2 Paketübersicht *......Page 1160
Die Pakete org.jdom.output und org.jdom.input......Page 1161
16.5.3 Die Document-Klasse......Page 1162
16.5.4 Eingaben aus der Datei lesen......Page 1163
16.5.5 Das Dokument im XML-Format ausgeben......Page 1164
Wurzelelement......Page 1165
Zugriff auf Elemente......Page 1167
16.5.7 Zugriff auf Elementinhalte......Page 1168
Elementinhalte auslesen und setzen......Page 1169
16.5.8 Attributinhalte lesen und ändern......Page 1171
16.6 Zum Weiterlesen......Page 1174
17.1.1 Das relationale Modell......Page 1176
17.2 Einführung in SQL......Page 1177
17.2.1 Ein Rundgang durch SQL-Abfragen......Page 1178
17.2.2 Datenabfrage mit der Data Query Language (DQL)......Page 1180
Zeilen ausfiltern und logische Operatoren......Page 1181
17.2.3 Tabellen mit der Data Definition Language (DDL) anlegen......Page 1182
17.3.1 HSQLDB......Page 1183
Eclipse Data Tools Platform (DTP)......Page 1185
17.4 JDBC und Datenbanktreiber......Page 1189
Implementierung der JDBC-API......Page 1190
17.5.2 Ein Client für die HSQLDB-Datenbank......Page 1191
17.5.3 Datenbankbrowser und eine Beispielabfrage unter NetBeans......Page 1193
SQL-Anweisungen absetzen......Page 1194
JDBC-Beispiel......Page 1196
18.1 Bits und Bytes *......Page 1200
18.1.1 Die Bit-Operatoren Komplement, Und, Oder und Xor......Page 1201
Variablen mit Xor vertauschen......Page 1202
18.1.2 Repräsentation ganzer Zahlen in Java – das Zweierkomplement......Page 1203
18.1.3 Das binäre (Basis 2), oktale (Basis 8), hexadezimale (Basis 16) Stellenwertsystem......Page 1204
Explizite Typumwandlung bei Ganzzahlen......Page 1205
Unterschiedliche Wertebereiche bei Fließund Ganzzahlen......Page 1206
Materialverlust durch Überläufe *......Page 1207
18.1.5 byte als vorzeichenlosen Datentyp nutzen......Page 1208
18.1.6 Die Verschiebeoperatoren......Page 1209
n >> s (arithmetisches Rechtsschieben)......Page 1210
18.1.7 Ein Bit setzen, löschen, umdrehen und testen......Page 1211
18.1.8 Bit-Methoden der Integerund Long-Klasse......Page 1212
18.2.1 Spezialwerte für Unendlich, Null, NaN......Page 1214
Positive, negative Null......Page 1215
NaN......Page 1216
18.2.2 Standard-Notation und wissenschaftliche Notation bei Fließkommazahlen *......Page 1217
18.2.3 Mantisse und Exponent *......Page 1218
18.3 Die Eigenschaften der Klasse Math......Page 1219
18.3.2 Absolutwerte und Vorzeichen......Page 1221
18.3.3 Maximum/Minimum......Page 1222
Aufund Abrunden mit ceil() und floor()......Page 1223
Gerechtes Runden rint()......Page 1224
Die Frage nach dem 0.0/0.0 und 0.0^0.0 *......Page 1226
18.3.6 Der Logarithmus *......Page 1227
18.3.7 Rest der ganzzahligen Division *......Page 1228
Arcus-Methoden......Page 1229
18.3.9 Zufallszahlen......Page 1230
18.4.1 Behandlung des Überlaufs......Page 1231
Überlauf erkennen......Page 1232
18.4.2 Was bitte macht ein ulp?......Page 1234
18.5 Mathe bitte strikt *......Page 1235
18.5.2 Die Klassen Math und StrictMath......Page 1236
18.6.1 Objekte mit dem Samen aufbauen......Page 1237
18.6.2 Zufallszahlen erzeugen......Page 1238
18.7 Große Zahlen *......Page 1239
BigInteger-Objekte erzeugen......Page 1240
18.7.2 Methoden von BigInteger......Page 1242
18.7.3 Ganz lange Fakultäten......Page 1245
Methoden statt Operatoren......Page 1247
Rundungsmodus......Page 1248
18.7.5 Mit MathContext komfortabel die Rechengenauigkeit setzen......Page 1249
18.8 Zum Weiterlesen......Page 1251
19 Die Werkzeuge des JDK......Page 1252
19.1.1 Java-Compiler vom JDK......Page 1253
19.1.3 Java-Programme in ein natives ausführbares Programm einpacken......Page 1254
19.2 Die Java-Laufzeitumgebung......Page 1255
Zusatzoptionen......Page 1256
Class-Path-Wildcard......Page 1259
19.3.1 Einen Dokumentationskommentar setzen......Page 1260
19.3.2 Mit dem Werkzeug javadoc eine Dokumentation erstellen......Page 1263
19.3.4 Generierte Dateien......Page 1264
Beispiele......Page 1265
19.3.7 Veraltete (deprecated) Typen und Eigenschaften......Page 1267
Compilermeldungen bei veralteten Methoden......Page 1268
Die Annotation »@Deprecated«......Page 1269
19.4 Das Archivformat Jar......Page 1270
19.4.1 Das Dienstprogramm jar benutzen......Page 1271
Jar-Dateien anlegen......Page 1272
Dateien aus dem Archiv extrahieren......Page 1273
19.4.3 Applikationen in Jar-Archiven starten......Page 1274
Von der Kommandozeile oder mit Doppelklick starten......Page 1275
Anhang A Die Klassenbibliothek......Page 1278
A.1.1 Schnittstellen......Page 1286
A.1.2 Klassen......Page 1287
Index......Page 1290




نظرات کاربران