Java ist auch eine Insel: Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8]
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Bonn
Galileo Press
2014
|
Ausgabe: | 11., aktualisierte und überarb. Aufl. |
Schriftenreihe: | Galileo Computing
|
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | Hier auch später erschienene, unveränderte Nachdrucke |
Beschreibung: | 1306 S. Ill. |
ISBN: | 9783836228732 3836228734 |
Internformat
MARC
LEADER | 00000nam a22000008c 4500 | ||
---|---|---|---|
001 | BV041866299 | ||
003 | DE-604 | ||
005 | 20171212 | ||
007 | t | ||
008 | 140523s2014 gw a||| |||| 00||| ger d | ||
015 | |a 14,N06 |2 dnb | ||
016 | 7 | |a 1046808486 |2 DE-101 | |
020 | |a 9783836228732 |9 978-3-8362-2873-2 | ||
020 | |a 3836228734 |9 3-8362-2873-4 | ||
024 | 3 | |a 9783836228732 | |
035 | |a (OCoLC)881689643 | ||
035 | |a (DE-599)DNB1046808486 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-NW | ||
049 | |a DE-M347 |a DE-573 |a DE-11 |a DE-M382 |a DE-859 |a DE-739 |a DE-91G |a DE-83 |a DE-634 |a DE-473 |a DE-863 |a DE-20 |a DE-Aug4 |a DE-91 |a DE-522 |a DE-1051 |a DE-1047 |a DE-860 |a DE-861 |a DE-1028 |a DE-858 |a DE-384 |a DE-824 | ||
082 | 0 | |a 005.133 |2 22/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 362f |2 stub | ||
100 | 1 | |a Ullenboom, Christian |e Verfasser |0 (DE-588)123404738 |4 aut | |
245 | 1 | 0 | |a Java ist auch eine Insel |b Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8] |c Christian Ullenboom |
250 | |a 11., aktualisierte und überarb. Aufl. | ||
264 | 1 | |a Bonn |b Galileo Press |c 2014 | |
300 | |a 1306 S. |b Ill. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Galileo Computing | |
500 | |a Hier auch später erschienene, unveränderte Nachdrucke | ||
650 | 0 | 7 | |a Java Standard Edition 11 |0 (DE-588)1176042394 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java Standard Edition 9 |0 (DE-588)113696553X |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java Standard Edition 8 |0 (DE-588)1049861094 |2 gnd |9 rswk-swf |
655 | 7 | |8 1\p |0 (DE-588)4123623-3 |a Lehrbuch |2 gnd-content | |
689 | 0 | 0 | |a Java Standard Edition 8 |0 (DE-588)1049861094 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 1 | 1 | |a Java Standard Edition 11 |0 (DE-588)1176042394 |D s |
689 | 1 | |8 2\p |5 DE-604 | |
689 | 2 | 0 | |a Java Standard Edition 9 |0 (DE-588)113696553X |D s |
689 | 2 | |8 3\p |5 DE-604 | |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=4577518&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027310488&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 2\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 3\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-027310488 |
Datensatz im Suchindex
DE-BY-863_location | 1000 1340 |
---|---|
DE-BY-FWS_call_number | 1000/ST 250 J35 U41(11) 1340/ST 250 J35 U41(11) |
DE-BY-FWS_katkey | 524915 |
DE-BY-FWS_media_number | 083101331876 083101331887 |
_version_ | 1806528261083103232 |
adam_text |
INHALT
VORWORT 31
1 JAVA IST AUCH EINE SPRACHE
49
1.1 HISTORISCHER HINTERGRUND 49
1.2 WARUM JAVA GUT IST-DIE ZENTRALEN EIGENSCHAFTEN 51
1.2.1 BYTECODE 52
1.2.2 AUSFUEHRUNG DES BYTECODES DURCH EINE VIRTUELLE MASCHINE 52
1.2.3 PLATTFORMUNABHAENGIGKEIT 53
1.2.4 JAVA ALS SPRACHE, LAUFZEITUMGEBUNG UND STANDARDBIBLIOTHEK 54
1.2.5 OBJEKTORIENTIERUNG IN JAVA 55
1.2.6 JAVA IST VERBREITET UND BEKANNT 55
1.2.7 JAVA IST SCHNELL-OPTIMIERUNG UND JUST-IN-TIME-COMPILATION 56
1.2.8 DAS JAVA-SECURITY-MODELL 57
1.2.9 ZEIGER UND REFERENZEN 58
1.2.10 BRING DEN MUELL RAUS, CARBAGE-COLLECTORL 60
1.2.11 AUSNAHMEBEHANDLUNG 60
1.2.12 ANGEBOT AN BIBLIOTHEKEN UND WERKZEUGEN 61
1.2.13 EINFACHE SYNTAX DER PROGRAMMIERSPRACHE JAVA 61
1.2.14 JAVA IST OPEN SOURCE 64
1.2.15 WOFUER SICH JAVA WENIGER EIGNET 65
1.2.16 JAVA IM VERGLEICH ZU ANDEREN SPRACHEN * 67
1.2.17 JAVA UND DAS WEB, APPLETS UND JAVAFX 69
1.2.18 FEATURES, ENHANCEMENTS (ERWEITERUNGEN) UND EIN JSR 71
1.2.19 DIE ENTWICKLUNG VON JAVA UND SEINE ZUKUNFTSAUSSICHTEN 72
1.3 JAVA-PLATTFORMEN: JAVA SE, JAVA EE, JAVA ME UND JAVA CARD 73
1.3.1 DIE JAVA SE-PLATTFORM 73
1.3.2 JAVA FUER DIE KLEINEN 75
1.3.3 JAVA FUER DIE GANZ, GANZ KLEINEN 76
1.3.4 JAVA FUER DIE GROSSEN 76
1.3.5 ECHTZEIT-JAVA (REAL-TIME JAVA) 76
1.4 DIE INSTALLATION DER JAVA PLATFORM STANDARD EDITION (JAVA SE) 77
1.4.1 DIE JAVA SE VON ORACLE 77
1.4.2 DOWNLOAD DES JDK 78
1.4.3 JAVA SE UNTER WINDOWS INSTALLIEREN 80
1.4.4 JDK/JRE DEINSTALLIEREN 84
5
HTTP://D-NB.INFO/1046808486
1.4.5 JDK UNTER LINUX INSTALLIEREN 85
1.4.6 JDK UNTER MAX OS X INSTALLIEREN 85
1.5 DAS ERSTE PROGRAMM COMPILIEREN UND TESTEN 86
1.5.1 COMPILERTEST 87
1.5.2 EIN QUADRATZAHLEN-PROGRAMM 88
1.5.3 DER COMPILERLAUF 89
1.5.4 DIE LAUFZEITUMGEBUNG 90
1.5.5 HAEUFIGE COMPILER-UND INTERPRETER-PROBLEME 90
1.6 ENTWICKLUNGSUMGEBUNGEN IM ALLGEMEINEN 91
1.6.1 DIE ENTWICKLUNGSUMGEBUNG ECLIPSE 91
1.6.2 NETBEANS VON ORACLE 92
1.6.3 INTELLIJ IDEA 93
1.6.4 EIN WORT ZU MICROSOFT, JAVA UND ZU J++, J# 93
1.7 ECLIPSE IM SPEZIELLEN 94
1.7.1 ECLIPSE ENTPACKEN UND STARTEN 96
1.7.2 DAS ERSTE PROJEKT ANLEGEN 97
1.7.3 VERZEICHNISSTRUKTUR FUER JAVA-PROJEKTE * 97
1.7.4 EINE KLASSE HINZUFUEGEN 99
1.7.5 UEBERSETZEN UND AUSFUEHREN 99
1.7.6 PROJEKT EINFUEGEN, WORKSPACE FUER DIE PROGRAMME WECHSELN 100
1.7.7 PLUGINS FUER ECLIPSE 100
1.8 NETBEANS IM SPEZIELLEN 101
1.8.1 NETBEANS-BUNDLES 101
1.8.2 NETBEANS INSTALLIEREN 102
1.8.3 NETBEANS STARTEN 103
1.8.4 EIN NEUES NETBEANS-PROJEKT ANLEGEN 103
1.8.5 EIN JAVA-PROGRAMM STARTEN 104
1.9 ZUM WEITERLESEN 104
2 IMPERATIVE SPRACHKONZEPTE
107
2.1 ELEMENTE DER PROGRAMMIERSPRACHE JAVA 107
2.1.1 TOKEN 107
2.1.2 TEXTKODIERUNG DURCH UNICODE-ZEICHEN 108
2.1.3 BEZEICHNER 108
2.1.4 LITERALE 111
2.1.5 RESERVIERTE SCHLUESSELWOERTER 111
6
2.1.6 ZUSAMMENFASSUNG DER LEXIKALISCHEN ANALYSE 112
2.1.7 KOMMENTARE 113
2.2 VON DER KLASSE ZUR ANWEISUNG 115
2.2.1 WAS SIND ANWEISUNGEN? 115
2.2.2. KLASSENDEKLARATION 115
2.2.3 DIE REISE BEGINNT AM MAIN(STRING[]) 116
2.2.4 DER ERSTE METHODENAUFRUF: PRINTLN(.) 117
2.2.5 ATOMARE ANWEISUNGEN UND ANWEISUNGSSEQUENZEN 118
2.2.6 MEHR ZU PRINT(.), PRINTLN(.) UND PRINTF(.) FUER
BILDSCHIRMAUSGABEN 118
2.2.7 DIE API-DOKUMENTATION 120
2.2.8 AUSDRUECKE 122
2.2.9 AUSDRUCKSANWEISUNG 123
2.2.10 ERSTE IDEE DER OBJEKTORIENTIERUNG 123
2.2.11 MODIFIZIERER 125
2.2.12 GRUPPIEREN VON ANWEISUNGEN MIT BLOECKEN 125
2.3 DATENTYPEN, TYPISIERUNG, VARIABLEN UND ZUWEISUNGEN 126
2.3.1 PRIMITIVE DATENTYPEN IM UEBERBLICK 128
2.3.2 VARIABLENDEKLARATIONEN 131
2.3.3 KONSOLENEINGABEN 134
2.3.4 FLIESSKOMMAZAHLEN MIT DEN DATENTYPEN FLOAT UND DOUBLE 136
2.3.5 GANZZAHLIGE DATENTYPEN 137
2.3.6 WAHRHEITSWERTE 139
2.3.7 UNTERSTRICHEINZAHLEN* 139
2.3.8 ALPHANUMERISCHE ZEICHEN 140
2.3.9 GUTE NAMEN, SCHLECHTE NAMEN 141
2.3.10 INITIALISIERUNG VON LOKALEN VARIABLEN 142
2.4 AUSDRUECKE, OPERANDEN UND OPERATOREN 142
2.4.1 ZUWEISUNGSOPERATOR 143
2.4.2 ARITHMETISCHE OPERATOREN 145
2.4.3 UNAERES MINUS UND PLUS 148
2.4.4 ZUWEISUNG MIT OPERATION 149
2.4.5 PRAEFIX- ODER POSTFIX-INKREMENT UND -DEKREMENT 150
2.4.6 DIE RELATIONALEN OPERATOREN UND DIE GLEICHHEITSOPERATOREN 152
2.4.7 LOGISCHE OPERATOREN: NICHT, UND, ODER, XOR 154
2.4.8 KURZSCHLUSS-OPERATOREN 155
2.4.9 DER RANG DER OPERATOREN IN DER AUSWERTUNGSREIHENFOLGE 156
2.4.10 DIE TYPANPASSUNG (DAS CASTING) 159
2.4.11 UEBERLADENES PLUS FUER STRINGS 164
2.4.12 OPERATOR VERMISST* 166
7
2.5 BEDINGTE ANWEISUNGEN ODER FALLUNTERSCHEIDUNGEN 166
2.5.1 VERZWEIGUNG MIT DER IF-ANWEISUNG 166
2.5.2 DIE ALTERNATIVE MIT EINER IF-ELSE-ANWEISUNG WAEHLEN 168
2.5.3 DER BEDINGUNGSOPERATOR 172
2.5.4 DIE SWITCH-ANWEISUNG BIETET DIE ALTERNATIVE 174
2.6 IMMER DAS GLEICHE MIT DEN SCHLEIFEN 180
2.6.1 DIE WHILE-SCHLEIFE 180
2.6.2 DIE DO-WHILE-SCHLEIFE 182
2.6.3 DIE FOR-SCHLEIFE 184
2.6.4 SCHLEIFENBEDINGUNGEN UND VERGLEICHE MIT == 188
2.6.5 AUSBRUCH PLANEN MIT BREAK UND WIEDEREINSTIEG MIT CONTINUE 190
2.6.6 BREAK UND CONTINUE MIT MARKEN * 193
2.7 METHODEN EINER KLASSE 197
2.7.1 BESTANDTEIL EINER METHODE 197
2.7.2 SIGNATUR-BESCHREIBUNG IN DER JAVA-API 199
2.7.3 AUFRUF EINER METHODE 200
2.7.4 METHODEN OHNE PARAMETER DEKLARIEREN 201
2.7.5 STATISCHE METHODEN (KLASSENMETHODEN) 202
2.7.6 PARAMETER, ARGUMENT UND WERTUEBERGABE 203
2.7.7 METHODEN VORZEITIG MIT RETURN BEENDEN 205
2.7.8 NICHT ERREICHBARER QUELLCODE BEI METHODEN * 206
2.7.9 METHODEN MIT RUECKGABEN 206
2.7.10 METHODEN UEBERLADEN 211
2.7.11 SICHTBARKEIT UND GUELTIGKEITSBEREICH 213
2.7.12 VORGEGEBENER WERT FUER NICHT AUFGEFUEHRTE ARGUMENTE* 215
2.7.13 FINALE LOKALE VARIABLEN 215
2.7.14 REKURSIVE METHODEN * 216
2.7.15 DIE TUERME VON HANOI * 221
2.8 ZUM WEITERLESEN 223
3 KLASSEN UND OBJEKTE
225
3.1 OBJEKTORIENTIERTE PROGRAMMIERUNG (OOP) 225
3.1.1 WARUM UEBERHAUPT OOP? 225
3.1.2 DENK ICH AN JAVA, DENK ICH AN WIEDERVERWENDBARKEIT 226
3.2 EIGENSCHAFTEN EINER KLASSE 227
3.2.1 KLASSENARBEIT MIT POINT 228
3.3 NATUERLICH MODELLIEREN MIT DER UML (UNIFIED MODELING LANGUAGE) * 228
3.3.1 HINTERGRUND UND GESCHICHTE DER UML 229
8
3.3.2 WICHTIGE DIAGRAMMTYPEN DER UML 230
3.3.3 UML-WERKZEUGE 231
3.4 NEUE OBJEKTE ERZEUGEN 232
3.4.1 EIN EXEMPLAR EINER KLASSE MIT DEM NEW-OPERATOR ANLEGEN 232
3.4.2 DER ZUSAMMENHANG VON NEW, HEAP UND GARBAGE-COLLECTOR 233
3.4.3 DEKLARIEREN VON REFERENZVARIABLEN 234
3.4.4 ZUGRIFF AUF OBJEKTATTRIBUTE UND -METHODEN MIT DEM . 235
3.4.5 UEBERBLICK UEBER POINT-METHODEN 239
3.4.6 KONSTRUKTOREN NUTZEN 242
3.5 ZZZZZNAKE 243
3.6 PAKETE SCHNUEREN, IMPORTS UND KOMPILATIONSEINHEITEN 246
3.6.1 JAVA-PAKETE 246
3.6.2 PAKETE DER STANDARDBIBLIOTHEK 246
3.6.3 VOLLE QUALIFIZIERUNG UND IMPORT-DEKLARATION 247
3.6.4 MIT IMPORT P1.P2.* ALLE TYPEN EINES PAKETS ERREICHEN 248
3.6.5 HIERARCHISCHE STRUKTUREN UEBER PAKETE 249
3.6.6 DIE PACKAGE-DEKLARATION 249
3.6.7 UNBENANNTES PAKET (DEFAULT PACKAGE) 250
3.6.8 KLASSEN MIT GLEICHEN NAMEN IN UNTERSCHIEDLICHEN PAKETEN * 251
3.6.9 KOMPILATIONSEINHEIT (COMPILATION UNIT) 252
3.6.10 STATISCHER IMPORT * 252
3.7 MIT REFERENZEN ARBEITEN, IDENTITAET UND GLEICHHEIT 253
3.7.1 NULL-REFERENZ UND DIE FRAGE DER PHILOSOPHIE 253
3.7.2 ALLES AUF NULL? REFERENZEN TESTEN 255
3.7.3 ZUWEISUNGEN BEI REFERENZEN 256
3.7.4 METHODEN MIT REFERENZTYPEN ALS PARAMETERN 258
3.7.5 IDENTITAET VON OBJEKTEN 262
3.7.6 GLEICHHEIT UND DIE METHODE EQUALS(.) 263
3.8 ARRAYS 265
3.8.1 GRUNDBESTANDTEILE 265
3.8.2 DEKLARATION VON ARRAYS 266
3.8.3 ARRAYS MIT INHALT 266
3.8.4 DIE LAENGE EINES ARRAYS UEBER DAS ATTRIBUT LENGTH AUSLESEN 267
3.8.5 ZUGRIFF AUF DIE ELEMENTE UEBER DEN INDEX 267
3.8.6 ARRAY-OBJEKTE MIT NEW ERZEUGEN 269
3.8.7 TYPISCHE FELDFEHLER 270
3.8.8 FELD-OBJEKTE ALS PARAMETERTYP 272
3.8.9 VORINITIALISIERTE ARRAYS 272
3.8.10 DIE ERWEITERTE FOR-SCHLEIFE 273
9
3.8.11 ARRAYS MIT NICHTPRIMITIVEN ELEMENTEN 275
3.8.12 METHODE MIT VARIABLER ARGUMENTANZAHL (VARARG) 278
3.8.13 MEHRDIMENSIONALE ARRAYS * 281
3.8.14 NICHTRECHTECKIGE ARRAYS * 284
3.8.15 DIE WAHRHEIT UEBER DIE ARRAY-INITIALISIERUNG * 286
3.8.16 MEHRERE RUECKGABEWERTE * 287
3.8.17 KLONEN KANN SICH LOHNEN-ARRAYS VERMEHREN * 288
3.8.18 FELDINHALTE KOPIEREN * 289
3.8.19 DIE KLASSE ARRAYS ZUM VERGLEICHEN, FUELLEN, SUCHEN, SORTIEREN
NUTZEN 290
3.8.20 EINE LANGE SCHLANGE 302
3.9 DER EINSTIEGSPUNKT FUER DAS LAUFZEITSYSTEM: MAIN(.) 304
3.9.1 KORREKTE DEKLARATION DER STARTMETHODE 304
3.9.2 KOMMANDOZEILENARGUMENTE VERARBEITEN 305
3.9.3 DER RUECKGABETYP VON MAIN(.) UND SYSTEM.EXIT(INT) * 306
3.10 GRUNDLAGEN VON ANNOTATIONEN UND CENERICS 308
3.10.1 CENERICS 308
3.10.2 ANNOTATIONEN 309
3.10.3 ANNOTATIONSTYPEN AUS JAVA.LANG 311
3.10.4 @DEPRECATED 311
3.10.5 @SUPPRESSWARNINGS 312
3.11 ZUM WEITERLESEN 316
4 DER UMGANG MIT ZEICHENKETTEN
317
4.1 VON ASCII UEBER ISO-8859-1 ZU UNICODE 317
4.1.1 ASCII 317
4.1.2 ISO/IEC 8859-1 318
4.1.3 UNICODE 319
4.1.4 UNICODE-ZEICHENKODIERUNG 321
4.1.5 ESCAPE-SEQUENZEN/FLUCHTSYMBOLE 322
4.1.6 SCHREIBWEISE FUER UNICODE-ZEICHEN UND UNICODE-ESCAPES 322
4.1.7 JAVA-VERSIONEN GEHEN MIT UNICODE-STANDARD HAND IN HAND * 325
4.2 DIE CHARACTER-KLASSE 326
4.2.1 IST DAS SO? 326
4.2.2 ZEICHEN IN GROSSBUCHSTABEN/KLEINBUCHSTABEN KONVERTIEREN 328
4.2.3 ZIFFERN EINER BASIS * 330
4.3 ZEICHENFOLGEN 330
10
4.4 DIE KLASSE STRING UND IHRE METHODEN 332
4.4.1 STRING-LITERALE ALS STRING-OBJEKTE FUER KONSTANTE ZEICHENKETTEN 333
4.4.2 KONKATENATION MIT + 333
4.4.3 STRING-LAENGE UND TEST AUF LEER-STRING 333
4.4.4 ZUGRIFF AUF EIN BESTIMMTES ZEICHEN MIT CHARAT() 335
4.4.5 NACH ENTHALTENEN ZEICHEN UND ZEICHENFOLGEN SUCHEN 335
4.4.6 DAS HANGMAN-SPIEL 338
4.4.7 GUT, DASS WIR VERGLICHEN HABEN 340
4.4.8 STRING-TEILE EXTRAHIEREN 344
4.4.9 STRINGS ANHAENGEN, ZUSAMMENFUEGEN,
GROSS
-/KLEINSCHREIBUNG
UND LEERRAUM 348
4.4.10 GESUCHT, GEFUNDEN, ERSETZT 352
4.4.11 STRING-OBJEKTE MIT KONSTRUKTOREN NEU ANLEGEN * 354
4.5 VERAENDERBARE ZEICHENKETTEN MIT STRINGBUILDER UND STRINGBUFFER 357
4.5.1 ANLEGEN VON STRINGBUILDER-/STRINGBUFFER-OBJEKTEN 359
4.5.2 STRINGBUILDER/STRINGBUFFER IN ANDERE ZEICHENKETTENFORMATE
KONVERTIEREN . 360
4.5.3 ZEICHEN(FOLGEN) ERFRAGEN 360
4.5.4 DATEN ANHAENGEN 360
4.5.5 ZEICHEN(FOLGEN) SETZEN, LOESCHEN UND UMDREHEN 362
4.5.6 LAENGE UND KAPAZITAET EINES STRINGBUILDER-/STRINGBUFFER-OBJEKTS *
364
4.5.7 VERGLEICHEN VON STRING MIT STRINGBUILDER UND STRINGBUFFER 365
4.5.8 HASHCODE() BEI STRINGBUILDER/STRINGBUFFER * 366
4.6 CHARSEQUENCE ALS BASISTYP 367
4.7 STRINGS MIT STRINGJOINER ZUSAMMENHAENGEN 369
4.8 KONVERTIEREN ZWISCHEN PRIMITIVEN UND STRINGS 371
4.8.1 UNTERSCHIEDLICHE TYPEN IN STRING-REPRAESENTATIONEN KONVERTIEREN 371
4.8.2 STRING-INHALT IN EINEN PRIMITIVEN WERT KONVERTIEREN 373
4.8.3 STRING-REPRAESENTATION IM FORMAT BINAER, HEX, OKTAL * 375
4.8.4 PARSEXXX(.)- UND PRINTXXX()-METHODEN IN DATATYPECONVERTER * 378
4.9 ZERLEGEN VON ZEICHENKETTEN 379
4.9.1 SPLITTEN VON ZEICHENKETTEN MIT SPLIT(*.) 380
4.9.2 YES WE CAN.YES WE SCAN-DIE KLASSE SCANNER 381
4.10 AUSGABEN FORMATIEREN 384
4.10.1 FORMATIEREN UND AUSGEBEN MIT FORMAT() 385
4.11 ZUM WEITERLESEN 391
11
5 EIGENE KLASSEN SCHREIBEN 393
5.1 EIGENE KLASSEN MIT EIGENSCHAFTEN DEKLARIEREN 393
5.1.1 ATTRIBUTE DEKLARIEREN 394
5.1.2 METHODEN DEKLARIEREN 396
5.1.3 DIE THIS-REFERENZ 400
5.2 PRIVATSPHAERE UND SICHTBARKEIT 403
5.2.1 FUER DIE OEFFENTLICHKEIT: PUBLIC 404
5.2.2 KEIN PUBLIC VIEWING-PASSWOERTER SIND PRIVAT 404
5.2.3 WIESO NICHT FREIE METHODEN UND VARIABLEN FUER ALLE? 405
5.2.4 PRIVAT IST NICHT GANZ PRIVAT: ES KOMMT DARAUF AN, WER'S SIEHT *
406
5.2.5 ZUGRIFFSMETHODEN FUER ATTRIBUTE DEKLARIEREN 406
5.2.6 SETTER UND GETTER NACH DER JAVABEANS-SPEZIFIKATION 407
5.2.7 PAKETSICHTBAR 410
5.2.8 ZUSAMMENFASSUNG ZUR SICHTBARKEIT 411
5.3 EINE FUER ALLE - STATISCHE METHODE UND STATISCHE ATTRIBUTE 414
5.3.1 WARUM STATISCHE EIGENSCHAFTEN SINNVOLL SIND 414
5.3.2 STATISCHE EIGENSCHAFTEN MIT STATIC 415
5.3.3 STATISCHE EIGENSCHAFTEN UEBER REFERENZEN NUTZEN? * 416
5.3.4 WARUM DIE GROSS-UND KLEINSCHREIBUNG WICHTIG IST * 417
5.3.5 STATISCHE VARIABLEN ZUM DATENAUSTAUSCH * 417
5.3.6 STATISCHE EIGENSCHAFTEN UND OBJEKTEIGENSCHAFTEN * 419
5.4 KONSTANTEN UND AUFZAEHLUNGEN 420
5.4.1 KONSTANTEN UEBER STATISCHE FINALE VARIABLEN 420
5.4.2 TYPUNSICHERE AUFZAEHLUNGEN 421
5.4.3 AUFZAEHLUNGSTYPEN: TYPSICHERE AUFZAEHLUNGEN MIT ENUM 423
5.5 OBJEKTE ANLEGEN UND ZERSTOEREN 428
5.5.1 KONSTRUKTOREN SCHREIBEN 428
5.5.2 DER VORGEGEBENE KONSTRUKTOR (DEFAULT CONSTRUCTOR) 429
5.5.3 PARAMETRISIERTE UND UEBERLADENE KONSTRUKTOREN 432
5.5.4 COPY-KONSTRUKTOR 434
5.5.5 EINEN ANDEREN KONSTRUKTOR DER GLEICHEN KLASSE MIT THIS(.)
AUFRUFEN 435
5.5.6 IHR FEHLT UNS NICHT-DER GARBAGE-COLLECTOR 438
5.6 KLASSEN- UND OBJEKTINITIALISIERUNG * 440
5.6.1 INITIALISIERUNG VON OBJEKTVARIABLEN 440
5.6.2 STATISCHE BLOECKE ALS KLASSENINITIALISIERER 442
5.6.3 INITIALISIERUNG VON KLASSENVARIABLEN 443
5.6.4 EINCOMPILIERTE BELEGUNGEN DER KLASSENVARIABLEN 444
12
5.6.5 EXEMPLARINITIALISIERER (INSTANZINITIALISIERER) 444
5.6.6 FINALE WERTE IM KONSTRUKTOR UND IN STATISCHEN BLOECKEN SETZEN 448
5.7 ZUM WEITERLESEN 450
6 OBJEKTORIENTIERTE BEZIEHUNGSFRAGEN
451
6.1 ASSOZIATIONEN ZWISCHEN OBJEKTEN 451
6.1.1 UNIDIREKTIONALE 1:1-BEZIEHUNG 452
6.1.2 ZWEI FREUNDE MUESST IHR WERDEN - BIDIREKTIONALE 1:1-BEZIEHUNGEN 453
6.1.3 UNIDIREKTIONALE 1:N-BEZIEHUNG 454
6.2 VERERBUNG 456
6.2.1 VERERBUNG IN JAVA 457
6.2.2 SPIELOBJEKTE MODELLIEREN 458
6.2.3 DIE IMPLIZITE BASISKLASSE JAVA.LANG.OBJECT 459
6.2.4 EINFACH-UND MEHRFACHVERERBUNG * 460
6.2.5 DIE SICHTBARKEIT PROTECTED 460
6.2.6 KONSTRUKTOREN IN DER VERERBUNG UND SUPER(.*) 461
6.3 TYPEN IN HIERARCHIEN 466
6.3.1 AUTOMATISCHE UND EXPLIZITE TYPANPASSUNG 466
6.3.2 DAS SUBSTITUTIONSPRINZIP 469
6.3.3 TYPEN MIT DEM INSTANCEOF-OPERATOR TESTEN 470
6.4 METHODEN UEBERSCHREIBEN 472
6.4.1 METHODEN IN UNTERKLASSEN MIT NEUEM VERHALTEN AUSSTATTEN 473
6.4.2 MIT SUPER AN DIE ELTERN 476
6.4.3 FINALE KLASSEN UND FINALE METHODEN 478
6.4.4 KOVARIANTE RUECKGABETYPEN 480
6.4.5 ARRAY-TYPEN UND KOVARIANZ * 481
6.5 DRUM PRUEFE, WER SICH EWIG DYNAMISCH BINDET 482
6.5.1 GEBUNDEN AN TOSTRING() 482
6.5.2 IMPLEMENTIERUNG VON SYSTEM.OUT.PRINTLN(OBJECT) 485
6.5.3 NICHT DYNAMISCH GEBUNDEN BEI PRIVATEN, STATISCHEN UND
FINALEN METHODEN 485
6.5.4 DYNAMISCH GEBUNDEN AUCH BEI KONSTRUKTOR-AUFRUFEN * 487
6.5.5 EINE LETZTE SPIELEREI MIT JAVAS DYNAMISCHER BINDUNG UND
UEBERSCHATTETEN ATTRIBUTEN * 489
6.6 ABSTRAKTE KLASSEN UND ABSTRAKTE METHODEN 490
6.6.1 ABSTRAKTE KLASSEN 490
6.6.2 ABSTRAKTE METHODEN 492
13
495
496
497
498
500
504
505
506
508
510
511
513
516
520
526
530
530
531
533
533
534
534
537
539
540
542
543
544
549
550
550
551
552
552
554
554
556
SCHNITTSTELLEN
6.7.1 SCHNITTSTELLEN DEKLARIEREN
6.7.2 IMPLEMENTIEREN VON SCHNITTSTELLEN
6.7.3 EIN POLYMORPHIE-BEISPIEL MIT SCHNITTSTELLEN
6.7.4 DIE MEHRFACHVERERBUNG BEI SCHNITTSTELLEN
6.7.5 KEINE KOLLISIONSGEFAHR BEI MEHRFACHVERERBUNG *
6.7.6 ERWEITERN VON INTERFACES - SUBINTERFACES
6.7.7 KONSTANTENDEKLARATIONEN BEI SCHNITTSTELLEN
6.7.8 STATISCHE AUSPROGRAMMIERTE METHODEN IN SCHNITTSTELLEN
6.7.9 ERWEITERN VON SCHNITTSTELLEN
6.7.10 DEFAULT-METHODEN
6.7.11 ERWEITERTE SCHNITTSTELLEN DEKLARIEREN UND NUTZEN
6.7.12 ERWEITERTE SCHNITTSTELLEN, MEHRFACHVERERBUNG UND MEHRDEUTIGKEITEN
*
6.7.13 BAUSTEINE BILDEN MIT DEFAULT-METHODEN *
6.7.14 INITIALISIERUNG VON SCHNITTSTELLENKONSTANTEN *
6.7.15 MARKIERUNGSSCHNITTSTELLEN*
6.7.16 ABSTRAKTE KLASSEN UND SCHNITTSTELLEN IM VERGLEICH
ZUM WEITERLESEN
AUSNAHMEN MUESSEN SEIN
PROBLEMBEREICHE EINZAEUNEN
7.1.1 EXCEPTIONS IN JAVA MIT TRY UND CATCH
7.1.2 EINE NUMBERFORMATEXCEPTION AUFFANGEN
7.1.3 EIGENSCHAFTEN VOM EXCEPTION-OBJEKT
7.1.4 WIEDERHOLUNG ABGEBROCHENER BEREICHE *
7.1.5 MEHRERE AUSNAHMEN AUFFANGEN
7.1.6 ABLAUF EINER AUSNAHMESITUATION
7.1.7 THROWS IM METHODENKOPF ANGEBEN
7.1.8 ABSCHLUSSBEHANDLUNG MIT FINALLY
RUNTIMEEXCEPTION MUSS NICHT AUFGEFANGEN WERDEN
7.2.1 BEISPIELE FUER RUNTIMEEXCEPTION-KLASSEN
7.2.2 KANN MAN ABFANGEN, MUSS MAN ABER NICHT
DIE KLASSENHIERARCHIE DER FEHLER
7.3.1 DIE EXCEPTION-HIERARCHIE
7.3.2 OBERAUSNAHMEN AUFFANGEN
7.3.3 SCHON GEFANGEN?
7.3.4 ALLES GEHT ALS EXCEPTION DURCH
7.3.5 ZUSAMMENFASSEN GLEICHER CATCH-BLOECKE MIT DEM MULTI-CATCH
7.4 HARTE FEHLER-ERROR * 559
7.5 AUSLOESEN EIGENER EXCEPTIONS 560
7.5.1 MITTHROW AUSNAHMEN AUSLOESEN 560
7.5.2 VORHANDENE RUNTIME-FEHLERTYPEN KENNEN UND NUTZEN 562
7.5.3 PARAMETER TESTEN UND GUTE FEHLERMELDUNGEN 565
7.5.4 NEUE EXCEPTION-KLASSEN DEKLARIEREN 566
7.5.5 EIGENE AUSNAHMEN ALS UNTERKLASSEN VON EXCEPTION ODER
RUNTIMEEXCEPTION? 568
7.5.6 AUSNAHMEN ABFANGEN UND WEITERLEITEN * 571
7.5.7 AUFRUF-STACK VON AUSNAHMEN VERAENDERN * 572
7.5.8 PRAEZISES RETHROW* 573
7.5.9 GESCHACHTELTE AUSNAHMEN * 576
7.6 AUTOMATISCHES RESSOURCEN-MANAGEMENT (TRY MIT RESSOURCEN) 579
7.6.1 TRY MIT RESSOURCEN 580
7.6.2 DIE SCHNITTSTELLE AUTOCIOSEABLE 582
7.6.3 MEHRERE RESSOURCEN NUTZEN 584
7.6.4 TRY MIT RESSOURCEN AUF NULL-RESSOURCEN 585
7.6.5 UNTERDRUECKTE AUSNAHMEN * 585
7.7 BESONDERHEITEN BEI DER AUSNAHMEBEHANDLUNG* 589
7.7.1 RUECKGABEWERTE BEI AUSGELOESTEN AUSNAHMEN 589
7.7.2 AUSNAHMEN UND RUECKGABEN VERSCHWINDEN - DAS DUO RETURN UND FINALLY
. 589
7.7.3 THROWS BEI UEBERSCHRIEBENEN METHODEN 590
7.7.4 NICHT ERREICHBARE CATCH-KLAUSELN 593
7.8 DEN STACK-TRACE ERFRAGEN * 594
7.8.1 STACKTRACEELEMENT 594
7.8.2 PRINTSTACKTRACE(.*) 595
7.8.3 STACKTRACEELEMENT VOM THREAD ERFRAGEN 596
7.9 ASSERTIONS * 597
7.9.1 ASSERTIONS IN EIGENEN PROGRAMMEN NUTZEN 597
7.9.2 ASSERTIONS AKTIVIEREN 599
7.10 ZUM WEITERLESEN 601
8 AEUSSERE.INNERE KLASSEN 603
8.1 GESCHACHTELTE (INNERE) KLASSEN, SCHNITTSTELLEN, AUFZAEHLUNGEN 603
8.2 STATISCHE INNERE KLASSEN UND SCHNITTSTELLEN 604
8.3 MITGLIEDS- ODER ELEMENTKLASSEN 606
8.3.1 EXEMPLARE INNERER KLASSEN ERZEUGEN 606
15
8.3.2 DIETHIS-REFERENZ 607
8.3.3 VOM COMPILER GENERIERTE KLASSENDATEIEN * 608
8.3.4 ERLAUBTE MODIFIZIERER BEI AEUSSEREN UND INNEREN KLASSEN 609
8.3.5 INNERE KLASSEN GREIFEN AUF PRIVATE EIGENSCHAFTEN ZU 609
8.4 LOKALE KLASSEN 611
8.4.1 BEISPIEL MIT EIGENER KLASSENDEKLARATION 611
8.4.2 LOKALE KLASSE FUER EINEN TIMER NUTZEN 612
8.5 ANONYME INNERE KLASSEN 613
8.5.1 NUTZUNG EINER ANONYMEN INNEREN KLASSE FUER DEN TIMER 613
8.5.2 UMSETZUNG INNERER ANONYMER KLASSEN * 614
8.5.3 KONSTRUKTOREN INNERER ANONYMER KLASSEN 615
8.6 ZUGRIFF AUF LOKALE VARIABLEN AUS LOKALEN INNEREN UND ANONYMEN
KLASSEN * 616
8.7 THIS IN UNTERKLASSEN * 617
8.8 ZUM WEITERLESEN 618
9 BESONDERE TYPEN DER JAVA SE 619
9.1 VERGLEICHEN VON OBJEKTEN 620
9.1.1 NATUERLICH GEORDNET ODER NICHT? 620
9.1.2 DIE SCHNITTSTELLE COMPARABLE 621
9.1.3 DIE SCHNITTSTELLE COMPARATOR 621
9.1.4 RUECKGABEWERTE KODIEREN DIE ORDNUNG 622
9.1.5 STATISCHE UND DEFAULT-METHODEN IN COMPARATOR 624
9.2 WRAPPER-KLASSEN UND AUTOBOXING 627
9.2.1 WRAPPER-OBJEKTE ERZEUGEN 629
9.2.2 KONVERTIERUNGEN IN EINE STRING-REPRAESENTATION 630
9.2.3 VON EINER STRING-REPRAESENTATION PARSEN 631
9.2.4 DIE BASISKLASSE NUMBER FUER NUMERISCHE WRAPPER-OBJEKTE 632
9.2.5 VERGLEICHE DURCHFUEHREN MIT COMPARE(.), COMPARETO(.),
EQUALS(.)
UND HASHWERTEN 633
9.2.6 STATISCHE REDUZIERUNGSMETHODEN IN WRAPPER-KLASSEN 636
9.2.7 DIE GROESSE EINES PRIMITIVEN TYPS IN DEN WRAPPER-KONSTANTEN SIZE
UND BYTES 637
9.2.8 BEHANDELN VON VORZEICHENLOSEN ZAHLEN * 638
9.2.9 DIE KLASSE INTEGER 639
9.2.10 DIE KLASSEN DOUBLE UND FLOAT FUER FLIESSKOMMAZAHLEN 640
9.2.11 DIE LONG-KLASSE 641
16
9.2.12 DIE BOOLEAN-KLASSE 641
9.2.13 AUTOBOXING: BOXING UND UNBOXING 642
9.3 OBJECT IST DIE MUTTER ALLER KLASSEN 646
9.3.1 KLASSENOBJEKTE 646
9.3.2 OBJEKTIDENTIFIKATION MITTOSTRING() 647
9.3.3 OBJEKTGLEICHHEIT MIT EQUALS(.*) UND IDENTITAET 649
9.3.4 KLONEN EINES OBJEKTS MIT CLONE() * 653
9.3.5 HASHWERTE UEBER HASHCODE() LIEFERN * 658
9.3.6 SYSTEM.IDENTITYHASHCODE(.) UND DAS PROBLEM DER NICHT EINDEUTIGEN
OBJEKTVERWEISE* 665
9.3.7 AUFRAEUMEN MIT FINALIZE() * 666
9.3.8 SYNCHRONISATION* 668
9.4 DIE UTILITY-KLASSE JAVA.UTIL.OBJECTS 669
9.5 ITERATOR, ITERABLE * 671
9.5.1 DIE SCHNITTSTELLE ITERATOR 672
9.5.2 WERDEN ITERATOR LIEFERT 674
9.5.3 DIE SCHNITTSTELLE ITERABLE 675
9.5.4 ERWEITERTESTER UND ITERABLE 676
9.5.5 INTERNE ITERATION (SEIT JAVA 8) 676
9.5.6 EINEN EIGENEN ITERABLE IMPLEMENTIEREN * 677
9.6 DIE SPEZIAL-OBERKLASSE ENUM 678
9.6.1 METHODEN AUF ENUM-OBJEKTEN 679
9.6.2 AUFZAEHLUNGEN MIT EIGENEN METHODEN * 682
9.6.3 ENUM MIT EIGENEN KONSTRUKTOREN * 684
9.7 ZUM WEITERLESEN 687
10 GENERICS T 689
10.1 EINFUEHRUNG IN JAVA GENERICS 689
10.1.1 MENSCH VERSUS MASCHINE - TYPPRUEFUNG DES COMPILERS UND
DER LAUFZEITUMGEBUNG 689
10.1.2 TASCHEN 690
10.1.3 CENERISCHE TYPEN DEKLARIEREN 692
10.1:4 CENERICS NUTZEN 694
10.1.5 DIAMONDS AREFOREVER 696
10.1.6 GENERISCHE SCHNITTSTELLEN 699
10.1.7 GENERISCHE METHODEN/KONSTRUKTOREN UND TYP-INFERENZ 701
17
10.2 UMSETZEN DER GENERICS, TYPLOESCHUNG UND RAW-TYPES 705
10.2.1 REALISIERUNGSMOEGLICHKEITEN 705
10.2.2 TYPLOESCHUNG (TYPE ERASURE) 705
10.2.3 PROBLEME DER TYPLOESCHUNG 707
10.2.4 RAW-TYPE 711
10.3 EINSCHRAENKEN DER TYPEN UEBER BOUNDS 714
10.3.1 EINFACHE EINSCHRAENKUNGEN MIT EXTENDS 714
10.3.2 WEITERE OBERTYPEN MIT & 716
10.4 TYPPARAMETER IN DER THROWS-KLAUSEL * 717
10.4.1 DEKLARATION EINER KLASSE MIT TYPVARIABLE E EXTENDS EXCEPTION
717
10.4.2 PARAMETRISIERTER TYP BEI TYPVARIABLE E EXTENDS EXCEPTION 718
10.5 CENERICS UND VERERBUNG, INVARIANZ 720
10.5.1 ARRAYS SIND INVARIANT 721
10.5.2 GENERICS SIND KOVARIANT 721
10.5.3 WILDCARDS MIT ? 722
10.5.4 BOUNDED WILDCARDS 724
10.5.5 BOUNDED-WILDCARD-TYPEN UND BOUNDED-TYPVARIABLEN 728
10.5.6 DAS LESS-PRINZIP 730
10.5.7 ENUM E EXTENDS ENUM E * 732
10.6 KONSEQUENZEN DER TYPLOESCHUNG: TYP-TOKEN, ARRAYS UND BRUECKEN * 734
10.6.1 TYP-TOKEN 734
10.6.2 SUPER-TYPE-TOKEN 736
10.6.3 GENERICS UND ARRAYS 737
10.6.4 BRUECKENMETHODEN 738
10.6.5 ZUM WEITERLESEN 744
11 LAMBDA-AUSDRUECKE UND FUNKTIONALE
PROGRAMMIERUNG 745
11.1 CODE = DATEN 745
11.2 FUNKTIONALE SCHNITTSTELLEN UND LAMBDA-AUSDRUECKE IM DETAIL 748
11.2.1 FUNKTIONALE SCHNITTSTELLEN 749
11.2.2 TYP EINES LAMBDA-AUSDRUCKS ERGIBT SICH DURCH ZIELTYP 750
11.2.3 ANNOTATION @FUNCTIONALLNTERFACE 754
11.2.4 SYNTAX FUER LAMBDA-AUSDRUECKE 754
11.2.5 DIE UMGEBUNG DER LAMBDA-AUSDRUECKE UND VARIABLENZUGRIFFE 759
11.2.6 AUSNAHMEN IN LAMBDA-AUSDRUECKEN 762
11.2.7 KLASSEN MIT EINER ABSTRAKTEN METHODE ALS FUNKTIONALE
SCHNITTSTELLE? * 766
18
11.3 METHODEN-REFERENZ 767
11.3.1 VARIANTEN VON METHODEN-REFERENZEN 769
11.4 KONSTRUKTOR-REFERENZ 770
11.4.1 STANDARD- UND PARAMETRISIERTE KONSTRUKTOREN 772
11.4.2 NUETZLICHE VORDEFINIERTE SCHNITTSTELLEN FUER KONSTRUKTOR-REFERENZEN
773
11.5 IMPLEMENTIERUNG VON LAMBDA-AUSDRUECKEN * 774
11.6 FUNKTIONALE PROGRAMMIERUNG MIT JAVA 774
11.6.1 PROGRAMMIERPARADIGMEN: IMPERATIV ODER DEKLARATIV 774
11.6.2 FUNKTIONALE PROGRAMMIERUNG UND FUNKTIONALE PROGRAMMIERSPRACHEN
775
11.6.3 FUNKTIONALE PROGRAMMIERUNG IN JAVA AM BEISPIEL VOM COMPARATOR 777
11.6.4 LAMBDA-AUSDRUECKE ALS FUNKTIONEN SEHEN 778
11.7 FUNKTIONALE SCHNITTSTELLE AUS DEM JAVA.UTIL.FUNCTION-PAKET 779
11.7.1 BLOECKE MIT CODE UND DIE FUNKTIONALE SCHNITTSTELLE
JAVA.UTIL.FUNCTION.CONSUMER 780
11.7.2 SUPPLIER 781
11.7.3 PRAEDIKATE UND JAVA.UTIL.FUNCTION.PREDICATE 782
11.7.4 FUNKTIONEN UND DIE ALLGEMEINE FUNKTIONALE SCHNITTSTELLE
JAVA.UTIL.FUNCTION.FUNCTION 784
11.7.5 EIN BISSCHEN BI 788
11.7.6 FUNKTIONALE SCHNITTSTELLEN MIT PRIMITIVEN 791
11.8 OPTIONAL IST KEINE NULLNUMMER 793
11.8.1 OPTIONAL-TYP 796
11.8.2 PRIMITIVE OPTIONALE TYPEN 798
11.8.3 ERSTMAL FUNKTIONAL MIT OPTIONAL 799
11.9 WAS IST JETZT SO FUNKTIONAL? 803
11.10 ZUM WEITERLESEN 806
12 ARCHITEKTUR, DESIGN UND ANGEWANDTE
OBJEKTORIENTIERUNG 807
12.1 ARCHITEKTUR, DESIGN UND IMPLEMENTIERUNG 807
12.2 DESIGN-PATTERN (ENTWURFSMUSTER) 808
12.2.1 MOTIVATION FUER DESIGN-PATTERN 808
12.2.2 SINGLETON 809
12.2.3 FABRIKMETHODEN 812
12.2.4 DAS BEOBACHTER-PATTERN (OBSERVER/OBSERVABLE) 813
12.2.5 EREIGNISSE UEBER LISTENER 818
19
12.3 JAVABEANS 822
12.3.1 PROPERTIES (EIGENSCHAFTEN) 823
12.3.2 EINFACHE EIGENSCHAFTEN 823
12.3.3 INDIZIERTE EIGENSCHAFTEN 824
12.3.4 GEBUNDENE EIGENSCHAFTEN UND PROPERTYCHANGELISTENER 824
12.3.5 VETO-EIGENSCHAFTEN-DAGEGEN! 828
12.4 JAVAFX PROPERTIES 831
12.4.1 JAVAFX.BEANS-PAKET MIT XXXPROPERTY-KLASSEN 832
12.4.2 PROPERTY-VERAENDERUNGEN REGISTRIEREN 833
12.4.3 BEANS-BINDING 834
12.4.4 PROPERTY-SCHNITTSTELLE UND BINDXXX()-METHODEN 835
12.4.5 XXXPROPERTY-BEZIEHUNGEN (FUER TYP-FETISCHISTEN) * 842
12.4.6 AUSBLICK 844
12.5 ZUM WEITERLESEN 844
13 DIE KLASSENBIBLIOTHEK 845
13.1 DIE JAVA-KLASSENPHILOSOPHIE 845
13.1.1 UEBERSICHT UEBER DIE PAKETE DER STANDARDBIBLIOTHEK 845
13.1.2 COMPACT-PROFILE 848
13.2 SPRACHEN DER LAENDER 850
13.2.1 SPRACHEN UND REGIONEN UEBER LOCALE-OBJEKTE 850
13.3 DIE KLASSE DATE 853
13.3.1 OBJEKTE ERZEUGEN UND METHODEN NUTZEN 853
13.3.2 DATE-OBJEKTE SIND NICHT IMMUTABLE 855
13.4 CALENDAR UND CREGORIANCALENDAR 856
13.4.1 DIE ABSTRAKTE KLASSE CALENDAR 856
13.4.2 CALENDAR NACH DATE UND MILLISEKUNDEN FRAGEN 857
13.4.3 ABFRAGEN UND SETZEN VON DATUMSELEMENTEN UEBER FELDBEZEICHNER 858
13.4.4 KALENDER-EXEMPLARE BAUEN UEBER DEN CALENDAR.BUILDER 862
13.4.5 DER GREGORIANISCHE KALENDER 862
13.4.6 DATE-TIME-API IN JAVA 8 864
13.5 KLASSENLADER (CLASS LOADER) UND KLASSENPFAD 869
13.5.1 WOHER DIE KLEINEN KLASSEN KOMMEN 869
13.5.2 SETZEN DES KLASSENPFADES 871
13.5.3 DIE WICHTIGSTEN DREI TYPEN VON KLASSENLADERN 871
13.6 DIE UTILITY-KLASSE SYSTEM UND PROPERTIES 872
13.6.1 SYSTEMEIGENSCHAFTEN DER JAVA-UMGEBUNG 873
20
IB.6.2 LINE.SEPARATOR 875
13.6.3 EIGENE PROPERTIES VON DER KONSOLE AUS SETZEN * 875
13.6.4 UMGEBUNGSVARIABLEN DES BETRIEBSSYSTEMS * 878
13.6.5 EINFACHE ZEITMESSUNG UND PROFILING * 879
13.7 EINFACHE BENUTZEREINGABEN 882
13.7.1 GRAFISCHER EINGABEDIALOG UEBER JOPTIONPANE 882
13.7.2 GESCHUETZTE PASSWORT-EINGABEN MIT DER KLASSE CONSOLE * 883
13.8 AUSFUEHREN EXTERNER PROGRAMME * 884
13.8.1 PROCESSBUILDER UND PROZESSKONTROLLE MIT PROCESS 885
13.8.2 EINEN BROWSER, E-MAIL-CLIENT ODER EDITOR AUFRUFEN 891
13.9 BENUTZEREINSTELLUNGEN * 892
13.9.1 BENUTZEREINSTELLUNGEN MIT DER PREFERENCES-API 892
13.9.2 EINTRAEGE EINFUEGEN, AUSLESEN UND LOESCHEN 894
13.9.3 AUSLESEN DER DATEN UND SCHREIBEN IN EINEM ANDEREN FORMAT 896
13.9.4 AUF EREIGNISSE HORCHEN 896
13.9.5 ZUGRIFF AUF DIE GESAMTE WINDOWS-REGISTRY 897
13.10 ZUM WEITERLESEN 898
14 EINFUEHRUNG IN DIE NEBENLAEUFIGE PROGRAMMIERUNG
901
14.1 NEBENLAEUFIGKEIT UND PARALLELITAET 901
14.1.1 MULTITASKING, PROZESSE, THREADS 902
14.1.2 THREADS UND PROZESSE 902
14.1.3 WIE NEBENLAEUFIGE PROGRAMME DIE GESCHWINDIGKEIT STEIGERN KOENNEN
903
14.1.4 WAS JAVA FUER NEBENLAEUFIGKEIT ALLES BIETET 905
14.2 THREADS ERZEUGEN 905
14.2.1 THREADS UEBER DIE SCHNITTSTELLE RUNNABLE IMPLEMENTIEREN 905
14.2.2 THREAD MIT RUNNABLE STARTEN 907
14.2.3 DIE KLASSE THREAD ERWEITERN 908
14.3 THREAD-EIGENSCHAFTEN UND -ZUSTAENDE 911
14.3.1 DER NAME EINES THREADS 911
14.3.2 WER BIN ICH? 911
14.3.3 SCHLAEFER GESUCHT 912
14.3.4 MIT YIELDQ AUF RECHENZEIT VERZICHTEN 914
14.3.5 DER THREAD ALS DAEMON 914
14.3.6 FREIHEIT FUER DEN THREAD-DAS ENDE 916
14.3.7 EINEN THREAD HOEFLICH MIT INTERRUPT BEENDEN 917
14.3.8 UNCAUGHTEXCEPTIONHANDLERFUER UNBEHANDELTE AUSNAHMEN 919
21
920
921
922
924
927
928
929
929
929
931
933
935
939
940
942
942
943
945
947
947
947
948
949
955
955
957
959
961
962
962
964
966
966
968
971
DER AUSFUEHRER (EXECUTOR) KOMMT
14.4.1 DIE SCHNITTSTELLE EXECUTOR
14.4.2 GLUECKLICH IN DER GRUPPE-DIE THREAD-POOLS
14.4.3 THREADS MIT RUECKGABE UEBER CALLABLE
14.4.4
MEHRERE CALLABLE ABARBEITEN
14.4.5 SCHEDULEDEXECUTORSERVICE FUER WIEDERHOLENDE AUSGABEN UND
ZEITSTEUERUNGEN NUTZEN
SYNCHRONISATION UEBER KRITISCHE ABSCHNITTE
14.5.1 GEMEINSAM GENUTZTE DATEN
14.5.2 PROBLEME BEIM GEMEINSAMEN ZUGRIFF UND KRITISCHE ABSCHNITTE
14.5.3 PUNKTE NEBENLAEUFIG INITIALISIEREN
14.5.4 KRITISCHE ABSCHNITTE SCHUETZEN
14.5.5 KRITISCHE ABSCHNITTE MIT REENTRANTLOCK SCHUETZEN
14.5.6 SYNCHRONISIEREN MIT SYNCHRONIZED
14.5.7 MIT SYNCHRONIZED SYNCHRONISIERTE BLOECKE
14.5.8 DANN MACHEN WIR DOCH GLEICH ALLES SYNCHRONISIERT!
14.5.9 LOCK-FREIGABE IM FALL VON EXCEPTIONS
14.5.10 DEADLOCKS
ZUM WEITERLESEN
EINFUEHRUNG IN DATENSTRUKTUREN UND ALGORITHMEN
LISTEN
15.1.1 ERSTES LISTEN-BEISPIEL
15.1.2 AUSWAHLKRITERIUM ARRAYLIST ODER LINKEDLIST
15.1.3 DIE SCHNITTSTELLE LIST
15.1.4 ARRAYLIST
15.1.5 LINKEDLIST
15.1.6 DER FELD-ADAPTER ARRAYS.ASLIST(.)
15.1.7 TOARRAY(.) VON COLLECTION VERSTEHEN - DIE GEFAHR EINER FALLE
ERKENNEN
15.1.8 PRIMITIVE ELEMENTE IN DATENSTRUKTUREN VERWALTEN
MENGEN (SETS)
15.2.1 EIN ERSTES MENGEN-BEISPIEL
15.2.2 METHODEN DER SCHNITTSTELLE SET
15.2.3 HASHSET
15.2.4 TREESET-DIE SORTIERTE MENGE
15.2.5 DIE SCHNITTSTELLEN NAVIGABLESET UND SORTEDSET
15.2.6 LINKEDHASHSET
15.B ASSOZIATIVE SPEICHER 972
15.3.1 DIE KLASSEN HASHMAP UND TREEMAP 972
15.3.2 EINFUEGEN UND ABFRAGEN DES ASSOZIATIVSPEICHERS 975
15.3.3 UEBER DIE BEDEUTUNG VON EQUALS(.) UND HASHCODE() BEI ELEMENTEN
981
15.3.4 EIGENE OBJEKTE HASHEN 982
15.3.5 LINKEDHASHMAP UND LRU-IMPLEMENTIERUNGEN 983
15.3.6 IDENTITYHASHMAP 984
15.3.7 DAS PROBLEM VERAENDERTER ELEMENTE 984
15.3.8 AUFZAEHLUNGEN UND ANSICHTEN DES ASSOZIATIVSPEICHERS 985
15.3.9 DIE PROPERTIES-KLASSE 989
15.4 MIT EINEM ITERATOR DURCH DIE DATEN WANDERN 991
15.5 ALGORITHMEN IN COLLECTIONS 991
15.5.1 DIE BEDEUTUNG VON ORDNUNG MIT COMPARATOR UND COMPARABLE 992
15.5.2 SORTIEREN 993
15.5.3 DEN GROESSTEN UND KLEINSTEN WERT EINER COLLECTION FINDEN 995
15.5.4 NICHTAENDERBARE DATENSTRUKTUREN, IMMUTABLE ODER NUR LESEN? 998
15.5.5 NULL OBJECT PATTERN UND LEERE SAMMLUNGEN/ITERATOREN ZURUECKGEBEN
1002
15.5.6 ECHTE TYPSICHERE CONTAINER 1005
15.5.7 MIT DER HALBIERUNGSSUCHE NACH ELEMENTEN FAHNDEN 1006
15.6 ZUM WEITERLESEN 1008
16 EINFUEHRUNG IN GRAFISCHE OBERFLAECHEN
1009
16.1 GUI-FRAMEWORKS 1009
16.1.1 KOMMANDOZEILE 1009
16.1.2 GRAFISCHE BENUTZEROBERFLAECHE 1009
16.1.3 ABSTRACT WINDOW TOOLKIT (AWT) 1010
16.1.4 JAVA FOUNDATION CLASSES UND SWING 1010
16.1.5 JAVAFX 1010
16.1.6 SWT (STANDARD WIDGET TOOLKIT) * 1012
16.2 DEKLARATIVE UND PROGRAMMIERTE OBERFLAECHEN 1013
16.2.1 GUI-BESCHREIBUNGEN IN JAVAFX 1014
16.2.2 DEKLARATIVE GUI-BESCHREIBUNGEN FUER SWING? 1014
16.3 CUL-BUILDER 1015
16.3.1 GUI-BUILDERFUER JAVAFX 1015
16.3.2 GUI-BUILDERFUER SWING 1016
16.4 ALLER SWING-ANFANG-FENSTER ZUR WELT 1016
16.4.1 EINE UHR, BEI DER DIE ZEIT NIE VERGEHT 1016
23
16.4.2 SWING-FENSTER MIT JAVAX.SWING.JFRAME DARSTELLEN 1017
16.4.3 MIT ADD(.) AUF DEN CONTAINER 1018
16.4.4 FENSTER SCHLIESSBAR MACHEN-SETDEFAULTCLOSEOPERATION(INT) 1018
16.4.5 SICHTBARKEIT DES FENSTERS 1019
16.4.6 GROESSE UND POSITION DES FENSTERS VERAENDERN 1019
16.5 BESCHRIFTUNGEN (JLABEL) 1020
16.5.1 MEHRZELLIGER TEXT, HTML IN DER DARSTELLUNG 1023
16.6 ES TUT SICH WAS - EREIGNISSE BEIM AWT 1023
16.6.1 DIE EREIGNISQUELLEN UND HORCHER (LISTENER) VON SWING 1024
16.6.2 LISTENER IMPLEMENTIEREN 1025
16.6.3 LISTENER BEI DEM EREIGNISAUSLOESER ANMELDEN/ABMELDEN 1027
16.6.4 ADAPTERKLASSEN NUTZEN 1028
16.6.5 INNERE MITGLIEDSKLASSEN UND INNERE ANONYME KLASSEN 1030
16.6.6 AUFRUFEN DER LISTENER IM AWT-EVENT-THREAD 1032
16.7 SCHALTFLAECHEN 1033
16.7.1 NORMALE SCHALTFLAECHEN (JBUTTON) 1033
16.7.2 DER AUFMERKSAME ACTIONLISTENER 1035
16.7.3 SCHALTFLAECHEN-EREIGNISSE VOM TYP ACTIONEVENT 1036
16.7.4 BASISKLASSE ABSTRACTBUTTON 1036
16.7.5 WECHSELKNOPF (JTOGGLEBUTTON) 1038
16.8 ALLES AUSLEGUNGSSACHE-DIE LAYOUTMANAGER 1038
16.8.1 UEBERSICHT UEBER LAYOUTMANAGER 1038
16.8.2 ZUWEISEN EINES LAYOUTMANAGERS 1039
16.8.3 IM FLUSS MIT FLOWLAYOUT 1040
16.8.4 BOXLAYOUT 1042
16.8.5 MIT BORDERLAYOUT IN ALLE HIMMELSRICHTUNGEN 1042
16.8.6 RASTERANORDNUNG MIT GRIDLAYOUT 1045
16.8.7 WEITERE LAYOUTMANAGER 1047
16.9 TEXTKOMPONENTEN 1047
16.9.1 TEXT IN EINER EINGABEZEILE 1048
16.9.2 DIE OBERKLASSE DER TEXTKOMPONENTEN (JTEXTCOMPONENT) 1049
16.9.3 GESCHUETZTE EINGABEN (JPASSWORDFIELD) 1050
16.9.4 VALIDIERENDE EINGABEFELDER (JFORMATTEDTEXTFIELD) 1051
16.9.5 EINFACHE MEHRZELLIGE TEXTFELDER (JTEXTAREA) 1052
16.10 GRUNDLEGENDES ZUM ZEICHNEN 1055
16.10.1 DIE PAINT(GRAPHICS)-METHODEFUERDAS AWT-FRAME 1055
16.10.2 DIE EREIGNISORIENTIERTE PROGRAMMIERUNG AENDERT FENSTERINHALTE
1057
16.10.3 ZEICHNEN VON INHALTEN AUF EIN JFRAME 1058
24
16.10.4 AUFFORDERN ZUM NEUZEICHNEN MIT REPAINT(.) 1060
16.10.5 JAVA 2D-API : 1060
16.11 ZUM WEITERLESEN 1061
17 EINFUEHRUNG IN DATEIEN UND DATENSTROEME 1063
17.1 DATEISYSTEME UNTER NI0.2 1063
17.1.1 JAVA.IO-PAKET MIT FILE-KLASSE 1063
17.1.2 NI0.2 UND JAVA.NIO-PAKET 1064
17.2 DATEI UND VERZEICHNIS 1064
17.2.1 FILESYSTEM UND PATH 1065
17.2.2 DIE UTILITY-KLASSE FILES 1070
17.2.3 DATEIEN KOPIEREN UND VERSCHIEBEN 1072
17.2.4 NEUE DATEIEN, VERZEICHNISSE, SYMBOLISCHE VERKNUEPFUNGEN ANLEGEN
UND LOESCHEN 1075
17.3 DATEIEN MIT WAHLFREIEM ZUGRIFF 1077
17.3.1 EIN RANDOMACCESSFILE ZUM LESEN UND SCHREIBEN OEFFNEN 1077
17.3.2 AUS DEM RANDOMACCESSFILE LESEN 1078
17.3.3 SCHREIBEN MIT RANDOMACCESSFILE 1079
17.3.4 DIE LAENGE DES RANDOMACCESSFILE 1080
17.3.5 HIN UND HER IN DER DATEI 1080
17.4 STREAM-KLASSEN FUER BYTES UND ZEICHEN 1081
17.4.1 LESEN AUS DATEIEN UND SCHREIBEN IN DATEIEN 1082
17.4.2 BYTEORIENTIERTE DATENSTROEME UEBER FILES BEZIEHEN 1082
17.4.3 ZEICHENORIENTIERTE DATENSTROEME UEBER FILES BEZIEHEN 1083
17.4.4 FUNKTION VON OPENOPTION BEI DEN FILES.NEWXXX(.)-METHODEN 1084
17.4.5 RESSOURCEN AUS DEM KLASSENPFAD UND AUS JAR-ARCHIVEN LADEN 1086
17.4.6 DIE SCHNITTSTELLEN CLOSEABLE, AUTOCIOSEABLE UND FLUSHABLE 1087
17.5 BASISKLASSEN FUER DIE EIN-/AUSGABE 1089
17.5.1 DIE ABSTRAKTEN BASISKLASSEN 1089
17.5.2 UEBERSICHT UEBER EIN-/AUSGABEKLASSEN 1090
17.5.3 DIE ABSTRAKTE BASISKLASSE OUTPUTSTREAM 1092
17.5.4 DIE ABSTRAKTE BASISKLASSE INPUTSTREAM 1093
17.5.5 DIE ABSTRAKTE BASISKLASSE WRITER 1094
17.5.6 DIE ABSTRAKTE BASISKLASSE READER 1095
17.6 DATENSTROEME FILTERN UND VERKETTEN 1098
17.6.1 STREAMS ALS FILTER VERKETTEN (VERSCHACHTELN) 1099
25
17.6.2 GEPUFFERTE AUSGABEN MIT BUFFEREDWRITER UND BUFFEREDOUTPUTSTREAM
1101
17.6.3 GEPUFFERTE EINGABEN MIT BUFFEREDREADER/BUFFEREDLNPUTSTREAM HOB
17.7 VERMITTLER ZWISCHEN BYTE-STREAMS UND UNICODE-STROEMEN 1104
17.7.1 DATENKONVERTIERUNG DURCH DEN OUTPUTSTREAMWRITER 1104
17.7.2 AUTOMATISCHE KONVERTIERUNGEN MIT DEM INPUTSTREAMREADER 1106
17.8 ZUM WEITERLESEN 1107
18 EINFUEHRUNG INS DATENBANKMANAGEMENT MIT JDBC
1109
18.1 RELATIONALE DATENBANKEN 1109
18.1.1 DAS RELATIONALE MODELL 1109
18.2 DATENBANKEN UND TOOLS 1110
18.2.1 HSQLDB 1110
18.2.2 ECLIPSE DATA TOOLS PLATFORM (DTP) ZUM DURCHSCHAUEN VON
DATENBANKEN . 1111
18.3 JDBC UND DATENBANKTREIBER 1113
18.4 EINE BEISPIELABFRAGE 1114
18.4.1 SCHRITTE ZUR DATENBANKABFRAGE 1114
18.4.2 EIN CLIENT FUER DIE HSQLDB-DATENBANK 1115
18.5 ZUM WEITERLESEN 1116
19 EINFUEHRUNG IN XML 1117
19.1 AUSZEICHNUNGSSPRACHEN 1117
19.1.1 DIE STANDARD GENERALIZED MARKUP LANGUAGE (SGML) 1117
19.1.2 EXTENSIBLE MARKUP LANGUAGE (XML) 1118
19.2 EIGENSCHAFTEN VON XML-DOKUMENTEN 1118
19.2.1 ELEMENTE UND ATTRIBUTE 1118
19.2.2 BESCHREIBUNGSSPRACHE FUER DEN AUFBAU VON XML-DOKUMENTEN 1121
19.2.3 SCHEMA-DIE MODERNE ALTERNATIVE ZU DTD 1125
19.2.4 NAMENSRAUM (NAMESPACE) 1128
19.2.5 XML-APPLIKATIONEN * 1129
19.3 DIE JAVA-APIS FUER XML 1129
19.3.1 DAS DOCUMENT OBJECT MODEL (DOM) 1130
19.3.2 SIMPLE API FOR XML PARSING (SAX) 1130
19.3.3 PULL-API STAX 1131
19.3.4 JAVA DOCUMENT OBJECT MODEL (JDOM) 1131
26
19.3.5 JAXP ALS JAVA-SCHNITTSTELLE ZU XML 1131
19.3.6 DOM-BAEUME EINLESEN MIT JAXP * 1132
19.4 JAVA ARCHITECTURE FOR XML BINDING (JAXB) 1133
19.4.1 BEAN FUER JAXB AUFBAUEN 1133
19.4.2 UTILITY-KLASSE JAXB 1134
19.4.3 GANZE OBJEKTGRAPHEN SCHREIBEN UND LESEN 1135
19.4.4 JAXBCONTEXT UND MARSHALLER/UNMARSHALLER NUTZEN 1137
19.4.5 VALIDIERUNG 1139
19.4.6 WEITERE JAXB-ANNOTATIONEN * 1143
19.4.7 BEANS AUS XML-SCHEMA-DATEI GENERIEREN 1150
19.5 XML-DATEIEN MIT JDOM VERARBEITEN 1158
19.5.1 JDOM BEZIEHEN 1158
19.5.2 PAKETUEBERSICHT* 1159
19.5.3 DIE DOCUMENT-KLASSE 1160
19.5.4 EINGABEN AUS DER DATEI LESEN 1161
19.5.5 DAS DOKUMENT IM XML-FORMAT AUSGEBEN 1162
19.5.6 DER DOKUMENTTYP * 1163
19.5.7 ELEMENTE 1164
19.5.8 ZUGRIFF AUF ELEMENTINHALTE 1167
19.5.9 LISTE MIT UNTERELEMENTEN ERZEUGEN * 1169
19.5.10 NEUE ELEMENTE EINFUEGEN UND AENDERN 1170
19.5.11 ATTRIBUTINHALTE LESEN UND AENDERN 1173
19.5.12 XPATH 1176
19.6 ZUM WEITERLESEN 1180
20 TESTEN MIT JUNIT IISI
20.1 SOFTWARETESTS 1181
20.1.1 VORGEHEN BEI SCHREIBEN VON TESTFAELLEN 1182
20.2 DAS TEST-FRAMEWORK JUNIT 1182
20.2.1 TEST-DRIVEN-DEVELOPMENT UND TEST-FIRST 1182
20.2.2 TESTEN, IMPLEMENTIEREN, TESTEN, IMPLEMENTIEREN, TESTEN, FREUEN
1184
20.2.3 JUNIT-TESTS AUSFUEHREN 1185
20.2.4 ASSERTXXX(.)-METHODEN DER KLASSE ASSERT 1186
20.2.5 MATCHER-OBJEKTE UND HAMCREST 1187
20.2.6 EXCEPTIONS TESTEN 1192
20.2.7 TESTS IGNORIEREN UND GRENZEN FUER AUSFUEHRUNGSZEITEN FESTLEGEN 1193
20.2.8 MIT METHODEN DER ASSUME-KLASSE TESTS ABBRECHEN 1194
27
20.3 WIE GUTES DESIGN DAS TESTEN ERMOEGLICHT 1194
20.4 AUFBAU GROESSERER TESTFAELLE 1197
20.4.1 FIXTURES 1197
20.4.2 SAMMLUNGEN VON TESTKLASSEN UND KLASSENORGANISATION 1199
20.5 DUMMY, FAKE, STUB UND MOCK 1200
20.6 JUNIT-ERWEITERUNGEN, TESTZUSAETZE 1201
20.7 ZUM WEITERLESEN 1202
21 BITS UND BYTES UND MATHEMATISCHES
1203
21.1 BITS UND BYTES * 1203
21.1.1 DIE BIT-OPERATOREN KOMPLEMENT, UND, ODER UND XOR 1203
21.1.2 REPRAESENTATION GANZER ZAHLEN IN JAVA - DAS ZWEIERKOMPLEMENT 1205
21.1.3 DAS BINAERE (BASIS 2), OKTALE (BASIS 8), HEXADEZIMALE (BASIS 16)
STELLENWERTSYSTEM 1206
21.1.4 AUSWIRKUNG DER TYPANPASSUNG AUF DIE BITMUSTER 1207
21.1.5 VORZEICHENLOS ARBEITEN 1209
21.1.6 DIE VERSCHIEBEOPERATOREN 1212
21.1.7 EIN BIT SETZEN, LOESCHEN, UMDREHEN UND TESTEN 1214
21.1.8 BIT-METHODEN DER INTEGER- UND LONG-KLASSE 1214
21.2 FLIESSKOMMA-ARITHMETIK IN JAVA 1216
21.2.1 SPEZIALWERTE FUER UNENDLICH, NULL, NAN 1217
21.2.2 STANDARDNOTATION UND WISSENSCHAFTLICHE NOTATION BEI
FLIESSKOMMAZAHLEN* 1220
21.2.3 MANTISSE UND EXPONENT * 1220
21.3 DIE EIGENSCHAFTEN DER KLASSE MATH 1222
21.3.1 ATTRIBUTE 1222
21.3.2 ABSOLUTWERTE UND VORZEICHEN 1222
21.3.3 MAXIMUM/MINIMUM 1223
21.3.4 RUNDEN VON WERTEN 1224
21.3.5 REST DER GANZZAHLIGEN DIVISION * 1226
21.3.6 DIVISION MIT RUNDUNG RICHTUNG NEGATIV UNENDLICH,
ALTERNATIVER RESTWERT * 1227
21.3.7 WURZEL- UND EXPONENTIALMETHODEN 1229
21.3.8 DER LOGARITHMUS* 1230
21.3.9 WINKELMETHODEN* 1231
21.3.10 ZUFALLSZAHLEN 1232
28
21.4 GENAUIGKEIT, WERTEBEREICH EINES TYPS UND UEBERLAUFKONTROLLE * 1233
21.4.1 DER GROESSTE UND DER KLEINSTE WERT 1233
21.4.2 UEBERLAUF 1233
21.4.3 WAS BITTE MACHT EIN ULP? 1235
21.5 ZUFALLSZAHLEN: RANDOM, SECURERANDOM, SPLITTABLERANDOM 1237
21.5.1 DIE KLASSE RANDOM 1237
21.5.2 RANDOM-OBJEKTE MIT DEM SAMEN AUFBAUEN 1237
21.5.3 EINZELNE ZUFALLSZAHLEN ERZEUGEN 1238
21.5.4 PSEUDO-ZUFALLSZAHLEN IN DER NORMALVERTEILUNG * 1239
21.5.5 STROM VON ZUFALLSZAHLEN GENERIEREN * 1239
21.5.6 DIE KLASSE SECURERANDOM * 1240
21.5.7 SPLITTABLERANDOM * 1241
21.6 GROSSE ZAHLEN * 1241
21.6.1 DIE KLASSE BIGINTEGER 1242
21.6.2 BEISPIEL: GANZ LANGE FAKULTAETEN MIT BIGINTEGER 1248
21.6.3 GROSSE FLIESSKOMMAZAHLEN MIT BIGDECIMAL 1250
21.6.4 MIT MATHCONTEXT KOMFORTABEL DIE RECHENGENAUIGKEIT SETZEN 1252
21.7 MATHE BITTE STRIKT * 1253
21.7.1 STRIKTE FLIESSKOMMABERECHNUNGEN MIT STRICTFP 1254
21.7.2 DIE KLASSEN MATH UND STRICTMATH 1254
21.8 ZUM WEITERLESEN 1255
22 DIE WERKZEUGE DES JDK
1257
22.1 JAVA-QUELLEN UEBERSETZEN 1257
22.1.1 JAVA-COMPILER VOM JDK 1258
22.1.2 ALTERNATIVE COMPILER 1258
22.1.3 NATIVE COMPILER 1259
22.1.4 JAVA-PROGRAMME IN EIN NATIVES AUSFUEHRBARES PROGRAMM EINPACKEN
1259
22.2 DIE JAVA-LAUFZEITUMGEBUNG 1260
22.2.1 SCHALTER DER JVM 1260
22.2.2 DERUNTERSCHIEDZWISCHENJAVA.EXEUNDJAVAW.EXE 1263
22.3 MIT ROBOVM GEHT'S FUER JAVA IN DAS IOS-LAND * 1263
22.4 DOKUMENTATIONSKOMMENTARE MIT JAVADOC 1264
22.4.1 EINEN DOKUMENTATIONSKOMMENTAR SETZEN 1264
22.4.2 MIT DEM WERKZEUG JAVADOC EINE DOKUMENTATION ERSTELLEN 1266
22.4.3 HTML-TAGS IN DOKUMENTATIONSKOMMENTAREN * 1267
22.4.4 GENERIERTE DATEIEN 1267
29
22.4.5 DOKUMENTATIONSKOMMENTARE IM UEBERBLICK * 1268
22.4.6 JAVADOC UND DOCLETS * 1270
22.4.7 VERALTETE (DEPRECATED) TYPEN UND EIGENSCHAFTEN 1270
22.4.8 JAVADOC-UEBERPRUEFUNG MIT DOCLINT 1273
22.5 DAS ARCHIVFORMAT JAR 1273
22.5.1 DAS DIENSTPROGRAMM JAR BENUTZEN 1274
22.5.2 DAS MANIFEST 1276
22.5.3 APPLIKATIONEN IN JAR-ARCHIVEN STARTEN 1277
22.5.4 PACK200-FORMAT * 1278
ANHANG
A JAVA SE PAKETUEBERSICHT 1281
INDEX 1293
30 |
any_adam_object | 1 |
author | Ullenboom, Christian |
author_GND | (DE-588)123404738 |
author_facet | Ullenboom, Christian |
author_role | aut |
author_sort | Ullenboom, Christian |
author_variant | c u cu |
building | Verbundindex |
bvnumber | BV041866299 |
classification_rvk | ST 250 |
classification_tum | DAT 362f |
ctrlnum | (OCoLC)881689643 (DE-599)DNB1046808486 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 11., aktualisierte und überarb. Aufl. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a22000008c 4500</leader><controlfield tag="001">BV041866299</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20171212</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">140523s2014 gw a||| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">14,N06</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1046808486</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783836228732</subfield><subfield code="9">978-3-8362-2873-2</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3836228734</subfield><subfield code="9">3-8362-2873-4</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783836228732</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)881689643</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1046808486</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-NW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-M347</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-M382</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-863</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-91</subfield><subfield code="a">DE-522</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-1047</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-861</subfield><subfield code="a">DE-1028</subfield><subfield code="a">DE-858</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-824</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 362f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Ullenboom, Christian</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)123404738</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Java ist auch eine Insel</subfield><subfield code="b">Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8]</subfield><subfield code="c">Christian Ullenboom</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">11., aktualisierte und überarb. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Bonn</subfield><subfield code="b">Galileo Press</subfield><subfield code="c">2014</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1306 S.</subfield><subfield code="b">Ill.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Galileo Computing</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Hier auch später erschienene, unveränderte Nachdrucke</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java Standard Edition 11</subfield><subfield code="0">(DE-588)1176042394</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java Standard Edition 9</subfield><subfield code="0">(DE-588)113696553X</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java Standard Edition 8</subfield><subfield code="0">(DE-588)1049861094</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="8">1\p</subfield><subfield code="0">(DE-588)4123623-3</subfield><subfield code="a">Lehrbuch</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Java Standard Edition 8</subfield><subfield code="0">(DE-588)1049861094</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Java Standard Edition 11</subfield><subfield code="0">(DE-588)1176042394</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Java Standard Edition 9</subfield><subfield code="0">(DE-588)113696553X</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="8">3\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=4577518&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027310488&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">3\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-027310488</subfield></datafield></record></collection> |
genre | 1\p (DE-588)4123623-3 Lehrbuch gnd-content |
genre_facet | Lehrbuch |
id | DE-604.BV041866299 |
illustrated | Illustrated |
indexdate | 2024-08-05T08:33:24Z |
institution | BVB |
isbn | 9783836228732 3836228734 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-027310488 |
oclc_num | 881689643 |
open_access_boolean | |
owner | DE-M347 DE-573 DE-11 DE-M382 DE-859 DE-739 DE-91G DE-BY-TUM DE-83 DE-634 DE-473 DE-BY-UBG DE-863 DE-BY-FWS DE-20 DE-Aug4 DE-91 DE-BY-TUM DE-522 DE-1051 DE-1047 DE-860 DE-861 DE-1028 DE-858 DE-384 DE-824 |
owner_facet | DE-M347 DE-573 DE-11 DE-M382 DE-859 DE-739 DE-91G DE-BY-TUM DE-83 DE-634 DE-473 DE-BY-UBG DE-863 DE-BY-FWS DE-20 DE-Aug4 DE-91 DE-BY-TUM DE-522 DE-1051 DE-1047 DE-860 DE-861 DE-1028 DE-858 DE-384 DE-824 |
physical | 1306 S. Ill. |
publishDate | 2014 |
publishDateSearch | 2014 |
publishDateSort | 2014 |
publisher | Galileo Press |
record_format | marc |
series2 | Galileo Computing |
spellingShingle | Ullenboom, Christian Java ist auch eine Insel Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8] Java Standard Edition 11 (DE-588)1176042394 gnd Java Programmiersprache (DE-588)4401313-9 gnd Java Standard Edition 9 (DE-588)113696553X gnd Java Standard Edition 8 (DE-588)1049861094 gnd |
subject_GND | (DE-588)1176042394 (DE-588)4401313-9 (DE-588)113696553X (DE-588)1049861094 (DE-588)4123623-3 |
title | Java ist auch eine Insel Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8] |
title_auth | Java ist auch eine Insel Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8] |
title_exact_search | Java ist auch eine Insel Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8] |
title_full | Java ist auch eine Insel Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8] Christian Ullenboom |
title_fullStr | Java ist auch eine Insel Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8] Christian Ullenboom |
title_full_unstemmed | Java ist auch eine Insel Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8] Christian Ullenboom |
title_short | Java ist auch eine Insel |
title_sort | java ist auch eine insel einfuhrung ausbildung praxis programmieren mit der java platform standard edition 8 java von a bis z einfuhrung praxis referenz von klassen und objekten zu datenstrukturen und algorithmen aktuell zu java 8 |
title_sub | Einführung, Ausbildung, Praxis ; [Programmieren mit der Java Platform, Standard Edition 8 ; Java von A bis Z: Einführung, Praxis, Referenz ; von Klassen und Objekten zu Datenstrukturen und Algorithmen ; aktuell zu Java 8] |
topic | Java Standard Edition 11 (DE-588)1176042394 gnd Java Programmiersprache (DE-588)4401313-9 gnd Java Standard Edition 9 (DE-588)113696553X gnd Java Standard Edition 8 (DE-588)1049861094 gnd |
topic_facet | Java Standard Edition 11 Java Programmiersprache Java Standard Edition 9 Java Standard Edition 8 Lehrbuch |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=4577518&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027310488&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT ullenboomchristian javaistaucheineinseleinfuhrungausbildungpraxisprogrammierenmitderjavaplatformstandardedition8javavonabiszeinfuhrungpraxisreferenzvonklassenundobjektenzudatenstrukturenundalgorithmenaktuellzujava8 |
Beschreibung
THWS Würzburg Zentralbibliothek Lesesaal
Signatur: |
1000 ST 250 J35 U41(11) |
---|---|
Exemplar 1 | ausleihbar Verfügbar Bestellen |
THWS Würzburg Teilbibliothek SHL, Raum I.2.11
Signatur: |
1340 ST 250 J35 U41(11) |
---|---|
Exemplar 1 | nicht ausleihbar Verfügbar Bestellen |