Der Weg zum Java-Profi: Konzepte und Techniken für die professionelle Java-Entwicklung
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Heidelberg
dpunkt-Verl.
2011
|
Ausgabe: | 1. Aufl. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | XXXII, 983 S. Ill., graph. Darst. |
ISBN: | 9783898646680 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV036093343 | ||
003 | DE-604 | ||
005 | 20110726 | ||
007 | t | ||
008 | 100324s2011 gw ad|| |||| 00||| ger d | ||
015 | |a 10,N03 |2 dnb | ||
016 | 7 | |a 999217666 |2 DE-101 | |
020 | |a 9783898646680 |c GEH. : EUR 49,90, EUR 51.30 (AT), ca. sfr 75.00 (freier Pr.) |9 978-3-89864-668-0 | ||
024 | 3 | |a 9783898646680 | |
035 | |a (OCoLC)702106641 | ||
035 | |a (DE-599)DNB999217666 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BW | ||
049 | |a DE-20 |a DE-706 |a DE-526 |a DE-1050 |a DE-859 |a DE-739 |a DE-11 |a DE-573 |a DE-898 |a DE-634 |a DE-858 |a DE-83 |a DE-1051 |a DE-1029 |a DE-523 | ||
082 | 0 | |a 005.133 |2 22/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Inden, Michael |d 1971- |e Verfasser |0 (DE-588)143426753 |4 aut | |
245 | 1 | 0 | |a Der Weg zum Java-Profi |b Konzepte und Techniken für die professionelle Java-Entwicklung |c Michael Inden |
250 | |a 1. Aufl. | ||
264 | 1 | |a Heidelberg |b dpunkt-Verl. |c 2011 | |
300 | |a XXXII, 983 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Java Standard Edition 6 |0 (DE-588)7554591-3 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java Standard Edition 8 |0 (DE-588)1049861094 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java Standard Edition 9 |0 (DE-588)113696553X |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Java Standard Edition 6 |0 (DE-588)7554591-3 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Java Standard Edition 9 |0 (DE-588)113696553X |D s |
689 | 1 | |8 1\p |5 DE-604 | |
689 | 2 | 0 | |a Java Standard Edition 8 |0 (DE-588)1049861094 |D s |
689 | 2 | |8 2\p |5 DE-604 | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=3407287&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=018983906&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 | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-018983906 |
Datensatz im Suchindex
_version_ | 1812520698776649728 |
---|---|
adam_text |
IMAGE 1
UEBERSICHT
1 EINLEITUNG VII
TEIL I JAVA-GRUNDLAGEN, ANALYSE UND DESIGN 1
2 PROFESSIONELLE ARBEITSUMGEBUNG 3
3 OBJEKTORIENTIERTES DESIGN 31
4 JAVA-GRUNDLAGEN 125
TEIL II BAUSTEINE STABILER JAVA-APPLIKATIONEN 221
5 DAS COLLECTIONS-FRAMEWORK 223
6 APPLIKATIONSBAUSTEINE 309
7 MULTITHREADING 375
8 FORTGESCHRITTENE JAVA-THEMEN 455
9 NEUERUNGEN IN JDK 7 555
TEIL III FALLSTRICKE UND LOESUNGEN IM PRAXISALLTAG 501
10 BADSMELLS 583
11 REFACTORINGS 649
12 ENTWURFSMUSTER 695
BIBLIOGRAFISCHE INFORMATIONEN HTTP://D-NB.INFO/999217666
DIGITALISIERT DURCH
IMAGE 2
I V UEBERSICHT
TEIL IV QUALITAETSSICHERUNGSMASSNAHMEN 767
13 PROGRAMMIERSTIL UND CODING CONVENTIONS 769
14 UNIT TESTS 807
15 CODEREVIEWS 855
16 OPTIMIERUNGEN 865
ANHANG 933
A EINFUEHRUNG IN DIE UML 935
B UEBERBLICK UEBER DEN SOFTWAREENTWICKLUNGSPROZESS 955
LITERATURVERZEICHNIS 963
STICHWORTVERZEICHNIS 966
IMAGE 3
IX
INHALTSVERZEICHNIS
1 EINLEITUNG XIX
1.1 UEBER DIESES BUCH XIX
1.1.1 MOTIVATION XIX
1.1.2 WAS LEISTET DIESES BUCH UND WAS NICHT? XX
1.1.3 WIE UND WAS SOLL MITHILFE DES BUCHS GELERNT WERDEN? XX 1.1.4 WER
SOLLTE DIESES BUCH LESEN? XXII
1.2 AUFBAU DES BUCHS XXII
1.2.1 GLIEDERUNG DES BUCHS XXIII
1.2.2 KAPITELUEBERSICHT XXIV
1.3 KONVENTIONEN XXIX
1.4 DANKSAGUNGEN XXXI
I JAVA-GRUNDLAGEN, ANALYSE UND DESIGN 1
2 PROFESSIONELLE ARBEITSUMGEBUNG 3
2.1 VORTEILE VON IDES AM BEISPIEL VON ECLIPSE 3
2.2 PROJEKTORGANISATION 4
2.3 EINSATZ VON VERSIONSVERWALTUNGEN 6
2.3.1 ARBEITEN MIT VERSIONSVERWALTUNGEN 9
2.3.2 TAGGING UND BRANCHING 10
2.3.3 CVS UND SVN IM VERGLEICH 13
2.4 EINSATZ EINES UNIT-TEST-FRAMEWORKS 14
2.4.1 DAS JUNIT-FRAMEWORK 15
2.4.2 SCHREIBEN UND AUSFUEHREN VON TESTS 17
2.5 EINSATZ EINES IDE-UNABHAENGIGEN BUILD-PROZESSES 20
2.5.1 MOTIVATION FUER EIN IDE-UNABHAENGIGES BUILD-SYSTEM 20 2.5.2
ANT-BUILD 21
2.6 WEITERFUEHRENDE LITERATUR 30
3 OBJEKTORIENTIERTES DESIGN 31
3.1 OO-GRUNDLAGEN 32
3.1.1 GRUNDBEGRIFFE 32
IMAGE 4
FX INHALTSVERZEICHNIS
3.1.2 BEISPIELENTWURF: EIN ZAEHLER 40
3.1.3 DISKUSSION DER OO-GRUNDGEDANKEN 47
3.1.4 WISSENSWERTES ZUM OBJEKTZUSTAND 51
3.2 GRUNDLEGENDE OO-TECHNIKEN 60
3.2.1 ABSTRAKTE BASISKLASSEN 60
3.2.2 SCHNITTSTELLEN (INTERFACES) 62
3.2.3 INTERFACES UND ABSTRAKTE BASISKLASSEN 64
3.3 VOM IMPERATIVEN ZUM OBJEKTORIENTIERTEN ENTWURF 65
3.4 FORTGESCHRITTENERE OO-TECHNIKEN 69
3.4.1 READ-ONLY-INTERFACE 70
3.4.2 IMMUTABLE-KLASSE 76
3.4.3 DELEGATION STATT VERERBUNG 81
3.4.4 MARKER-INTERFACE 85
3.4.5 KONSTANTENSAMMLUNGEN, AUFZAEHLUNGEN UND DAS ENUM- MUSTER 86
3.4.6 VALUE OBJECT 91
3.5 FORMEN DER VARIANZ 94
3.5.1 GRUNDLAGEN DER VARIANZ 94
3.5.2 KOVARIANTE RUECKGABEWERTE 97
3.6 GENERISCHE TYPEN (GENERICS) 99
3.6.1 EINFUEHRUNG 99
3.6.2 GENERICS UND AUSWIRKUNGEN DER TYPE ERASURE 104 3.6.3
CONTAINERKLASSEN: GENERICS UND VARIANZ 111
3.7 WEITERFUEHRENDE LITERATUR 123
4 JAVA-GRUNDLAGEN 125
4.1 DIE KLASSE OBJECT 125
4.1.1 DIE METHODE T O S T R I NG O 127
4.1.2 DIE METHODE EQUAIS () 131
4.2 PRIMITIVE DATENTYPEN UND WRAPPER-KLASSEN 142
4.2.1 KONVERTIERUNG VON WERTEN 143
4.2.2 AUSGABE UND VERARBEITUNG VON ZAHLEN 149
4.3 STRINGVERARBEITUNG 152
4.3.1 DIE KLASSE S T R I NG 152
4.3.2 DIE KLASSEN STRINGBUF FER UND STRINGBUILDER 156 4.3.3 AUSGABEN MIT
FORMAT () UND P R I N T F () 159
4.3.4 DIE KLASSE STRINGTOKENIZER 161
4.3.5 DIE METHODE S P L IT () UND DAS 1X1 DER REGULAEREN AUS- DRUECKE 162
4.4 DATUMSVERARBEITUNG 167
4.4.1 FALLSTRICKE DER DATUMS-APIS 168
4.4.2 DAS DATE-API 169
4.4.3 DAS CALENDAR-API 172
IMAGE 5
INHALTSVERZEICHNIS XI
4.5 INTERFACES UND INNERE KLASSEN 174
4.5.1 INTERFACES 174
4.5.2 VARIANTEN INNERER KLASSEN 175
4.5.3 DESIGNBEISPIEL MIT INNEREN KLASSEN UND INTERFACES 178 4.5.4 LOKAL
DEFINIERTE KLASSEN UND INTERFACES 180
4.6 EIN- UND AUSGABE (I/O) 183
4.6.1 DATEIBEHANDLUNG UND DIE KLASSE F I LE 183
4.6.2 EIN- UND AUSGABESTREAMS 190
4.6.3 SPEICHERN UND LADEN VON DATEN UND OBJEKTEN 197
4.6.4 GRUNDLAGEN DER NETZWERKPROGRAMMIERUNG 204
4.7 FEHLERBEHANDLUNG 209
4.7.1 EXCEPTION HANDLING 211
4.7.2 ASSERTIONS 217
4.8 WEITERFUEHRENDE LITERATUR 220
II BAUSTEINE STABILER JAVA-APPLIKATIONEN 221
5 DAS COLLECTIONS-FRAMEWORK 223
5.1 DATENSTRUKTUREN 223
5.1.1 WAHL EINER GEEIGNETEN DATENSTRUKTUR 224
5.1.2 ARRAYS 226
5.1.3 DAS INTERFACE C O L L E C T I ON 228
5.1.4 LISTEN UND DAS INTERFACE L I ST 233
5.1.5 MENGEN UND DAS INTERFACE SET 239
5.1.6 GRUNDLAGEN VON HASHBASIERTEN CONTAINERN 241
5.1.7 GRUNDLAGEN AUTOMATISCH SORTIERENDER CONTAINER 250 5.1.8 DIE
METHODEN EQUALS ( ), HASHCODE ( ) UND COMPARETO ( ) IM ZUSAMMENSPIEL 257
5.1.9 KONKRETE REALISIERUNGEN VON MENGEN 259
5.1.10 SCHLUESSEL-WERT-ABBILDUNGEN UND DAS INTERFACE MAP 262 5.1.11
ERWEITERUNGEN AM BEISPIEL DER KLASSE HASHMAP 269 5.1.12
ENTSCHEIDUNGSHILFE ZUR WAHL VON DATENSTRUKTUREN 272 5.2 SUCHEN,
SORTIEREN UND FILTERN 273
5.2.1 SUCHEN 274
5.2.2 SORTIEREN MIT KOMPARATOREN 276
5.2.3 FILTERN VON COLLECTIONS 282
5.3 UTILITY-KLASSEN UND HILFSMETHODEN 288
5.3.1 NUETZLICHE HILFSMETHODEN 289
5.3.2 DEKORIERER SYNCHRONIZED, UNMODIF I A B LE UND CHECKED290 5.3.3
VORDEFINIERTE ALGORITHMEN 295
5.3.4 DESIGN EINES ZUGRIFFSINTERFACE 298
5.4 PROBLEME IM COLLECTIONS-FRAMEWORK 302
IMAGE 6
IXII INHALTSVERZEICHNIS
5.4.1 MERKWUERDIGKEITEN IN ARRAYS 302
5.4.2 PROBLEME VON STACK, QUEUE UND DEQUE 304
5.5 WEITERFUEHRENDE LITERATUR 307
6 APPLIKATIONSBAUSTEINE 309
6.1 EINSATZ VON BIBLIOTHEKEN AM BEISPIEL 309
6.2 WERTEBEREICHS- UND PARAMETERPRUEFUNGEN 314
6.2.1 PRUEFUNG EINFACHER WERTEBEREICHE UND WERTEMENGEN 314 6.2.2 PRUEFUNG
KOMPLEXERER WERTEBEREICHE 318
6.3 LOGGING-FRAMEWORKS 326
6.3.1 APACHE IOG4J 327
6.3.2 TIPPS UND TRICKS ZUM EINSATZ VON LOGGING MIT IOG4J 334 6.4
UTILITY-KLASSEN ZUR DATEIBEHANDLUNG 342
6.4.1 DIE KLASSE F I L E U T I LS 342
6.4.2 DIE KLASSE STREAMUTILS 344
6.4.3 IMPLEMENTIERUNG VON STRINGSTREAMS 349
6.5 KONFIGURATIONSPARAMETER UND -DATEIEN 351
6.5.1 EINLESEN VON KOMMANDOZEILENPARAMETERN 351 6.5.2 VERARBEITUNG VON
PROPERTIES 360
6.5.3 DIE KLASSE PREFERENCES 366
6.5.4 WEITERE MOEGLICHKEITEN ZUR KONFIGURATIONSVERWALTUNG 368
7 MULTITHREADING 375
7.1 THREADS UND RUNNABLES 377
7.1.1 DEFINITION DER AUSZUFUEHRENDEN AUFGABE 377
7.1.2 START, AUSFUEHRUNG UND ENDE VON THREADS 378
7.1.3 LEBENSZYKLUS VON THREADS UND THREAD-ZUSTAENDE 380 7.2
ZUSAMMENARBEIT VON THREADS 386
7.2.1 KONKURRIERENDE DATENZUGRIFFE 386
7.2.2 LOCKS, MONITORE UND KRITISCHE BEREICHE 387
7.2.3 DEADLOCKS UND STARVATION 392
7.2.4 KRITISCHE BEREICHE UND DAS INTERFACE LOCK 394
7.3 KOMMUNIKATION VON THREADS 398
7.3.1 KOMMUNIKATION MIT SYNCHRONISATION 399
7.3.2 KOMMUNIKATION UEBER DIE METHODEN WAIT (), N O T I FY () UND
NOTIFYALL () 402
7.3.3 ABSTIMMUNG VON THREADS 411
7.3.4 UNERWARTETE HLEGALMONITORSTATEEXCEPTIONS 415 7.4 DAS
JAVA-MEMORY-MODELL 416
7.4.1 SICHTBARKEIT 417
7.4.2 ATOMARITAET 418
7.4.3 REORDERINGS 420
7.5 BESONDERHEITEN BEI THREADS 423
IMAGE 7
INHALTSVERZEICHNIS XIII
7.5.1 VERSCHIEDENE ARTEN VON THREADS 423
7.5.2 EXCEPTIONS IN THREADS 425
7.5.3 SICHERES BEENDEN VON THREADS 426
7.5.4 ZEITGESTEUERTE AUSFUEHRUNG 430
7.6 DIE CONCURRENCY UTILITIES 433
7.6.1 CONCURRENT COLLECTIONS 434
7.6.2 DAS EXECUTOR-FRAMEWORK 443
7.7 WEITERFUEHRENDE LITERATUR 454
8 FORTGESCHRITTENE JAVA-THEMEN 455
8.1 CRASHKURS REFLECTION 455
8.1.1 GRUNDLAGEN 457
8.1.2 ZUGRIFF AUF METHODEN UND ATTRIBUTE 460
8.1.3 SPEZIALFAELLE 465
8.2 SERIALISIERUNG 468
8.2.1 IMPLEMENTIEREN DER SERIALISIERUNG 468
8.2.2 DIE SERIALISIERUNG ANPASSEN 473
8.2.3 VERSIONSVERWALTUNG DER SERIALISIERUNG 477
8.2.4 OPTIMIERUNG DER SERIALISIERUNG 480
8.3 OBJEKTKOPIEN UND DAS INTERFACE C I O N E A B IE 485
8.3.1 DAS INTERFACE CIONEABIE 486
8.3.2 ALTERNATIVEN ZUR METHODE C L O NE ( ) 495
8.4 INTERNATIONALISIERUNG 497
8.4.1 GRUNDLAGEN 498
8.4.2 DIE KLASSE LOCALE 499
8.4.3 DIE KLASSE PROPERTYRESOURCEBUNDLE 502
8.4.4 FORMATIERTE EIN- UND AUSGABE 506
8.4.5 ZAHLEN UND DIE KLASSE NUMBERFORMAT 507
8.4.6 DATUMSWERTE UND DIE KLASSE DATEFORMAT 510
8.4.7 TEXTMELDUNGEN UND DIE KLASSE MESSAGEFORMAT 515 8.5
PROGRAMMBAUSTEINE ZUR INTERNATIONALISIERUNG 517
8.5.1 UNTERSTUETZUNG MEHRERER DATUMSFORMATE 517
8.5.2 NUTZUNG MEHRERER SPRACHDATEIEN 522
8.6 MULTITHREADING UND SWING 532
8.6.1 CRASHKURS EVENT HANDLING IN SWING 532
8.6.2 AUSFUEHREN VON AKTIONEN 534
8.6.3 DIE KLASSE SWINGWORKER 538
8.7 GARBAGE COLLECTION 542
8.7.1 EINFLUSSFAKTOREN AUF DIE GARBAGE COLLECTION 542
8.7.2 ALGORITHMEN ZUR GARBAGE COLLECTION 546
8.7.3 OPTIMIERUNGEN DER GARBAGE COLLECTION 548
8.7.4 MEMORY LEAKS: GIBT ES DIE AUCH IN JAVA?! 549
8.7.5 OBJEKTZERSTOERUNG UND F I N A L I Z EO 551
IMAGE 8
IXIV INHALTSVERZEICHNIS
8.8 WEITERFUEHRENDE LITERATUR 553
9 NEUERUNGEN IN JDK 7 555
9.1 ERWEITERUNGEN DER SPRACHE SELBST 555
9.2 ERWEITERUNGEN DES NIO IN JDK 7 563
9.2.1 DATEIBEHANDLUNG IN JDK 7 563
9.2.2 ASYNCHRONOUS I/O 569
9.3 MULTITHREADING 570
9.4 NEUERUNGEN IN AWT UND SWING 573
9.5 COLLECTIONS 574
9.6 DER GARBAGE COLLECTOR »G1 575
9.7 GEPLANTE DATUMSVERARBEITUNG MIT DEM NEUEN DATUMS-API 576
III FALLSTRICKE UND LOESUNGEN IM PRAXISALLTAG 581
10 BAD SMELLS 583
10.1 PROGRAMMDESIGN 585
10.1.1 BAD SMELL: VERWENDEN VON MAGIC NUMBERS 585 10.1.2 BAD SMELL:
KONSTANTEN IN INTERFACES DEFINIEREN 586 10.1.3 BAD SMELL: SYSTEM.EXIT ()
MITTEN IM PROGRAMM 589 10.1.4 BAD SMELL: ZUSAMMENGEHOERENDE KONSTANTEN
NICHT ALS
TYP DEFINIERT 590
10.1.5 BAD SMELL: PROGRAMMCODE IM LOGGING-CODE 592 10.1.6 BAD SMELL:
UNVOLLSTAENDIGE BETRACHTUNG ALLER ALTERNATIVEN . 593 10.1.7 BAD SMELL:
UNVOLLSTAENDIGE AENDERUNGEN NACH COPY-PASTE 594 10.1.8 BAD SMELL: CASTS
AUF UNBEKANNTE SUBTYPEN 596 10.1.9 BAD SMELL: PRE-/POST-INCREMENT IN
KOMPLEXEREN STATEMENTS 598 10.1.10 BAD SMELL: KEINE KLAMMERN UM BLOECKE
600
10.1.11 BAD SMELL: VARIABLENDEKLARATION NICHT IM KLEINSTMOEGLICHEN
SICHTBARKEITSBEREICH 602
10.1.12 BAD SMELL: MEHRERE AUFEINANDERFOLGENDE PARAMETER GLEI- CHEN TYPS
603
10.1.13 BAD SMELL: GRUNDLOSER EINSATZ VON REFLECTION 604 10.2
KLASSENDESIGN 606
10.2.1 BAD SMELL: UNNOETIGERWEISE VERAENDERLICHE ATTRIBUTE 606 10.2.2 BAD
SMELL: AUFRUF ABSTRAKTER METHODEN IM KONSTRUKTOR . . 608 10.2.3 BAD
SMELL: HERAUSGABE VON T HI S IM KONSTRUKTOR 612 10.2.4 BAD SMELL:
REFERENZIERUNG VON SUBKLASSEN IN BASISKLASSEN 613 10.2.5 BAD SMELL: MIX
ABSTRAKTER UND KONKRETER BASISKLASSEN . . 615 10.2.6 BAD SMELL:
OEFFENTLICHER DEFAULTKONSTRUKTOR LEDIGLICH ZUM
ZUGRIFF AUF HILFSMETHODEN 617
10.3 FEHLERBEHANDLUNG UND EXCEPTION HANDLING 619
IMAGE 9
INHALTSVERZEICHNIS
10.3.1 BAD SMELL: UNBEHANDELTE EXCEPTION 619
10.3.2 BAD SMELL: UNPASSENDER EXCEPTION-TYP 620
10.3.3 BAD SMELL: EXCEPTIONS ZUR STEUERUNG DES KONTROLLFLUSSES 622
10.3.4 BAD SMELL: FANGEN DER ALLGEMEINSTEN EXCEPTION 623 10.3.5 BAD
SMELL: RUECKGABE VON N U LL STATT EXCEPTION IM FEH- LERFALL 625
10.3.6 BAD SMELL: UNBEDACHTE RUECKGABE VON N U LL 627
10.3.7 BAD SMELL: SONDERBEHANDLUNG VON RANDFAELLEN 629 10.3.8 BAD SMELL:
KEINE GUELTIGKEITSPRUEFUNG VON EINGABEPARAME- TERN 630
10.3.9 BAD SMELL: FEHLERHAFTE FEHLERBEHANDLUNG 632
10.3.10 BAD SMELL: I/O OHNE F I N A L LY BZW. F I N A L I Z EO 634
10.3.11 BAD SMELL: RESOURCE LEAKS DURCH EXCEPTIONS IM KON- STRUKTOR 636
10.4 HAEUFIGE FALLSTRICKE 640
10.5 WEITERFUEHRENDE LITERATUR 648
11 REFACTORINGS 649
11.1 DAS STANDARDVORGEHEN 657
11.2 DER REFACTORING-KATALOG 660
11.2.1 REDUZIERE DIE SICHTBARKEIT VON ATTRIBUTEN 660
11.2.2 MINIMIERE VERAENDERLICHE ATTRIBUTE 663
11.2.3 REDUZIERE DIE SICHTBARKEIT VON METHODEN 667
11.2.4 ERSETZE MUTATOR- DURCH BUSINESS-METHODE 668
11.2.5 MINIMIERE ZUSTANDSAENDERUNGEN (REFACTORING-KOMBINATION) 669 11.2.6
FUEHRE EIN INTERFACE EIN 669
11.2.7 AUFSPALTEN EINES INTERFACE 670
11.2.8 EINFUEHREN EINES READ-ONLY-INTERFACE 671
11.2.9 EINFUEHREN EINES READ-WRITE-INTERFACE 671
11.2.10 EINFUEHREN VON CONVENIENCE-METHODEN 672
11.2.11 EINFUEHREN EINER ZUSTANDSPRUEFUNG 674
11.2.12 UEBERPRUEFUNG VON EINGABEPARAMETERN 676
11.2.13 TRENNE INFORMATIONSBESCHAFFUNG UND-VERARBEITUNG 680 11.2.14
KONSTANTENSAMMLUNG IN ENUM UMWANDELN 685
11.2.15 ENTFERNE EXCEPTIONS ZUR STEUERUNG DES KONTROLLFLUSSES. 688
11.2.16 UMWANDLUNG IN UTILITY-KLASSE MIT STATISCHEN HILFSMETHODEN 691
11.3 WEITERFUEHRENDE LITERATUR 694
12 ENTWURFSMUSTER 695
12.1 ERZEUGUNGSMUSTER 698
12.1.1 ERZEUGUNGSMETHODE 698
12.1.2 FABRIKMETHODE (FACTORY METHOD) 701
12.1.3 ERBAUER (BUILDER) 704
IMAGE 10
IXVI INHALTSVERZEICHNIS
12.1.4 SINGLETON 707
12.1.5 PROTOTYP (PROTOTYPE) 711
12.2 STRUKTURMUSTER 715
12.2.1 FASSADE (FACADE) 716
12.2.2 ADAPTER 718
12.2.3 DEKORIERER (DECORATOR) 720
12.2.4 KOMPOSITUM (COMPOSITE) 723
12.3 VERHALTENSMUSTER 727
12.3.1 ITERATOR 728
12.3.2 NULL-OBJEKT (NULL OBJECT) 730
12.3.3 SCHABLONENMETHODE (TEMPLATE METHOD) 733 12.3.4 STRATEGIE
(STRATEGY) 737
12.3.5 BEFEHL (COMMAND) 745
12.3.6 PROXY 752
12.3.7 ZUSTAENDIGKEITSKETTE (CHAIN OF RESPONSIBILITY) 754 12.3.8
BEOBACHTER (OBSERVER) 756
12.3.9 MVC-ARCHITEKTUR 765
12.4 WEITERFUEHRENDE LITERATUR 766
IV QUALITAETSSICHERUNGSMASSNAHMEN 767
13 PROGRAMMIERSTIL UND CODING CONVENTIONS 769
13.1 GRUNDREGELN EINES GUTEN PROGRAMMIERSTILS 769
13.1.1 KEEP IT HUMAN-READABLE 770
13.1.2 KEEP IT SIMPLE AND SHORT 770
13.1.3 KEEP IT NATURAL 770
13.1.4 KEEP IT CLEAN 770
13.2 DIE PSYCHOLOGIE BEIM SOURCECODE-LAYOUT 771
13.2.1 FAKTOR DER AEHNLICHKEIT 771
13.2.2 FAKTOR DER NAEHE 772
13.3 CODING CONVENTIONS 774
13.3.1 GRUNDLEGENDE NAMENS- UND FORMATIERUNGSREGELN 775 13.3.2
NAMENSGEBUNG 778
13.3.3 DOKUMENTATION 780
13.3.4 PROGRAMMDESIGN 782
13.3.5 KLASSENDESIGN 787
13.3.6 PARAMETERLISTEN 790
13.3.7 LOGIK UND KONTROLLFLUSS 792
13.4 SOURCECODE-UEBERPRUEFUNG MIT TOOLS 794
13.4.1 METRIKEN 795
13.4.2 SOURCECODE-UEBERPRUEFUNG IM BUILD-PROZESS 799
IMAGE 11
INHALTSVERZEICHNIS XVII I
14 UNIT TESTS 807
14.1 UEBERBLICK 807
14.1.1 ARTEN VON TESTS 807
14.1.2 AEUSSERE VS. INNERE QUALITAET 810
14.1.3 AUSWIRKUNGEN VON UNIT TESTS AUF DIE QUALITAET 811
14.2 MOTIVATION FUER UNIT TESTS AUS DER PRAXIS 813
14.2.1 UNIT TESTS FUER NEUENTWICKLUNGEN 813
14.2.2 UNIT TESTS UND LEGACY-CODE 820
14.3 FORTGESCHRITTENE UNIT-TEST-TECHNIKEN 831
14.3.1 TESTEN MIT STUBS 831
14.3.2 TESTEN MIT MOCKS 833
14.3.3 UNIT TESTS VON PRIVATEN METHODEN 836
14.4 UNIT TESTS MIT THREADS UND TIMING 837
14.5 NUETZLICHE TOOLS FUER UNIT TESTS 842
14.5.1 HAMCREST 842
14.5.2 INFINITEST 846
14.5.3 COBERTURA 847
14.6 WEITERFUEHRENDE LITERATUR 853
15 CODEREVIEWS 855
15.1 DEFINITION 855
15.2 PROBLEME UND TIPPS ZUR DURCHFUEHRUNG 857
15.3 VORTEILE VON CODEREVIEWS 859
15.4 CODEREVIEW-TOOLS 862
15.5 CODEREVIEW-CHECKLISTE 864
16 OPTIMIERUNGEN 865
1 6.1 GRUNDLAGEN 866
16.1.1 OPTIMIERUNGSEBENEN UND EINFLUSSFAKTOREN 867
16.1.2 OPTIMIERUNGSTECHNIKEN 868
16.1.3 CPU-BOUND-OPTIMIERUNGSEBENEN AM BEISPIEL 870 16.1.4 MESSUNGEN -
ERKENNEN KRITISCHER BEREICHE 874
16.1.5 ABSCHAETZUNGEN MIT DER O-NOTATION 881
16.2 EINSATZ GEEIGNETER DATENSTRUKTUREN 884
16.2.1 EINFLUSS VON ARRAYS UND LISTEN 885
16.2.2 OPTIMIERUNGEN FUER SET UND MAP 889
16.2.3 API-DESIGN COLLECTION VS. I T E R A T OR 891
16.3 LAZY INITIALIZATION 892
16.3.1 LAZY INITIALIZATION AM BEISPIEL 893
16.3.2 KONSEQUENZEN DES EINSATZES DER LAZY INITIALIZATION 896 16.3.3
LAZY INITIALIZATION MITHILFE DES PROXY-MUSTERS 898 16.4 OPTIMIERUNGEN AM
BEISPIEL 900
16.5 L/O-BOUND-OPTIMIERUNGEN 908
IMAGE 12
I XVIII INHALTSVERZEICHNIS
16.5.1 TECHNIK - WAHL PASSENDER STRATEGIEN 908
16.5.2 TECHNIK - CACHING UND POOLING 911
16.5.3 TECHNIK - VERMEIDUNG UNNOETIGER AKTIONEN 912 16.6
MEMORY-BOUND-OPTIMIERUNGEN 915
16.6.1 TECHNIK - WAHL PASSENDER STRATEGIEN 915
16.6.2 TECHNIK - CACHING UND POOLING 918
16.6.3 OPTIMIERUNGEN DER STRINGVERARBEITUNG 923
16.6.4 TECHNIK - VERMEIDUNG UNNOETIGER AKTIONEN 926 16.7
CPU-BOUND-OPTIMIERUNGEN 928
16.7.1 TECHNIK - WAHL PASSENDER STRATEGIEN 929
16.7.2 TECHNIK - CACHING UND POOLING 929
16.7.3 TECHNIK - VERMEIDUNG UNNOETIGER AKTIONEN 930 16.8 WEITERFUEHRENDE
LITERATUR 932
V ANHANG 933
A EINFUEHRUNG IN DIE UML 935
A.1 DIE UML IM UEBERBLICK 935
A.2 STRUKTURDIAGRAMME - STATISCHE MODELLE 939
A.2.1 KLASSENDIAGRAMME 939
A.2.2 OBJEKTDIAGRAMME 943
A.2.3 KOMPONENTENDIAGRAMME 943
A.2.4 PAKETDIAGRAMME 944
A.3 VERHALTENSDIAGRAMME - DYNAMISCHE MODELLE 945
A.3.1 ANWENDUNGSFALLDIAGRAMME 945
A.3.2 SEQUENZDIAGRAMME 946
A.3.3 KOMMUNIKATIONSDIAGRAMME 950
A.3.4 ZUSTANDSDIAGRAMME 951
A.3.5 AKTIVITAETSDIAGRAMME 953
A.4 WEITERFUEHRENDE LITERATUR 954
B UEBERBLICK UEBER DEN SOFTWAREENTWICKLUNGSPROZESS 955 B.1
VORGEHENSMODELLE 955
B.1.1 AUFGABEN UND PHASEN BEIM SOFTWAREENTWURF 955 B.1.2
WASSERFALLMODELL UND V-MODELL 956
B.1.3 EXTREME PROGRAMMING (XP) 958
B.1.4 TEST-DRIVEN DEVELOPMENT (TDD) 960
B.1.5 DISKUSSION 961
LITERATURVERZEICHNIS 963
STICHWORTVERZEICHNIS 966 |
any_adam_object | 1 |
author | Inden, Michael 1971- |
author_GND | (DE-588)143426753 |
author_facet | Inden, Michael 1971- |
author_role | aut |
author_sort | Inden, Michael 1971- |
author_variant | m i mi |
building | Verbundindex |
bvnumber | BV036093343 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)702106641 (DE-599)DNB999217666 |
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 | 1. Aufl. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV036093343</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20110726</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">100324s2011 gw ad|| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">10,N03</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">999217666</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783898646680</subfield><subfield code="c">GEH. : EUR 49,90, EUR 51.30 (AT), ca. sfr 75.00 (freier Pr.)</subfield><subfield code="9">978-3-89864-668-0</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783898646680</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)702106641</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB999217666</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-BW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-20</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-526</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-858</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-1029</subfield><subfield code="a">DE-523</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="100" ind1="1" ind2=" "><subfield code="a">Inden, Michael</subfield><subfield code="d">1971-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)143426753</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Der Weg zum Java-Profi</subfield><subfield code="b">Konzepte und Techniken für die professionelle Java-Entwicklung</subfield><subfield code="c">Michael Inden</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Heidelberg</subfield><subfield code="b">dpunkt-Verl.</subfield><subfield code="c">2011</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXII, 983 S.</subfield><subfield code="b">Ill., graph. Darst.</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="650" ind1="0" ind2="7"><subfield code="a">Java Standard Edition 6</subfield><subfield code="0">(DE-588)7554591-3</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="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="689" ind1="0" ind2="0"><subfield code="a">Java Standard Edition 6</subfield><subfield code="0">(DE-588)7554591-3</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 Standard Edition 9</subfield><subfield code="0">(DE-588)113696553X</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" 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="2" ind2=" "><subfield code="8">2\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=3407287&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=018983906&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="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-018983906</subfield></datafield></record></collection> |
id | DE-604.BV036093343 |
illustrated | Illustrated |
indexdate | 2024-10-10T10:00:38Z |
institution | BVB |
isbn | 9783898646680 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-018983906 |
oclc_num | 702106641 |
open_access_boolean | |
owner | DE-20 DE-706 DE-526 DE-1050 DE-859 DE-739 DE-11 DE-573 DE-898 DE-BY-UBR DE-634 DE-858 DE-83 DE-1051 DE-1029 DE-523 |
owner_facet | DE-20 DE-706 DE-526 DE-1050 DE-859 DE-739 DE-11 DE-573 DE-898 DE-BY-UBR DE-634 DE-858 DE-83 DE-1051 DE-1029 DE-523 |
physical | XXXII, 983 S. Ill., graph. Darst. |
publishDate | 2011 |
publishDateSearch | 2011 |
publishDateSort | 2011 |
publisher | dpunkt-Verl. |
record_format | marc |
spelling | Inden, Michael 1971- Verfasser (DE-588)143426753 aut Der Weg zum Java-Profi Konzepte und Techniken für die professionelle Java-Entwicklung Michael Inden 1. Aufl. Heidelberg dpunkt-Verl. 2011 XXXII, 983 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier Java Standard Edition 6 (DE-588)7554591-3 gnd rswk-swf Java Standard Edition 8 (DE-588)1049861094 gnd rswk-swf Java Standard Edition 9 (DE-588)113696553X gnd rswk-swf Java Standard Edition 6 (DE-588)7554591-3 s DE-604 Java Standard Edition 9 (DE-588)113696553X s 1\p DE-604 Java Standard Edition 8 (DE-588)1049861094 s 2\p DE-604 text/html http://deposit.dnb.de/cgi-bin/dokserv?id=3407287&prov=M&dok_var=1&dok_ext=htm Inhaltstext DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018983906&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 2\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Inden, Michael 1971- Der Weg zum Java-Profi Konzepte und Techniken für die professionelle Java-Entwicklung Java Standard Edition 6 (DE-588)7554591-3 gnd Java Standard Edition 8 (DE-588)1049861094 gnd Java Standard Edition 9 (DE-588)113696553X gnd |
subject_GND | (DE-588)7554591-3 (DE-588)1049861094 (DE-588)113696553X |
title | Der Weg zum Java-Profi Konzepte und Techniken für die professionelle Java-Entwicklung |
title_auth | Der Weg zum Java-Profi Konzepte und Techniken für die professionelle Java-Entwicklung |
title_exact_search | Der Weg zum Java-Profi Konzepte und Techniken für die professionelle Java-Entwicklung |
title_full | Der Weg zum Java-Profi Konzepte und Techniken für die professionelle Java-Entwicklung Michael Inden |
title_fullStr | Der Weg zum Java-Profi Konzepte und Techniken für die professionelle Java-Entwicklung Michael Inden |
title_full_unstemmed | Der Weg zum Java-Profi Konzepte und Techniken für die professionelle Java-Entwicklung Michael Inden |
title_short | Der Weg zum Java-Profi |
title_sort | der weg zum java profi konzepte und techniken fur die professionelle java entwicklung |
title_sub | Konzepte und Techniken für die professionelle Java-Entwicklung |
topic | Java Standard Edition 6 (DE-588)7554591-3 gnd Java Standard Edition 8 (DE-588)1049861094 gnd Java Standard Edition 9 (DE-588)113696553X gnd |
topic_facet | Java Standard Edition 6 Java Standard Edition 8 Java Standard Edition 9 |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=3407287&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=018983906&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT indenmichael derwegzumjavaprofikonzepteundtechnikenfurdieprofessionellejavaentwicklung |