HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Core Java® has long been recognized as the leading, no-nonsense tutorial and reference for experienced programmers who want to write robust Java code for real-world applications. Now, Core Java®, Volume II—Advanced Features, Tenth Edition, has been extensively updated to reflect the most eagerly awaited and innovative version of Java in years: Java SE 8. Rewritten and reorganized to illuminate powerful new Java features, idioms, and best practices for enterprise and desktop development, it contains hundreds of up-to-date example programs—all carefully crafted for easy understanding and practical applicability.
Writing for serious programmers solving real-world problems, Cay Horstmann deepens your understanding of today’s Java language and library. In this second of two updated volumes, he offers in-depth coverage of advanced topics including the new Streams API and date/time/calendar library, advanced Swing, security, code processing, and more. This guide will help you
If you’re an experienced programmer moving to Java SE 8, Core Java®, Tenth Edition, is the reliable, practical, and complete guide to the Java platform that has been trusted by developers for over twenty years.
Look for the companion volume, Core Java®, Volume I—Fundamentals, Tenth Edition (ISBN-13: 978-0-13-417730-4), for foundational coverage of Java 8 language concepts, UI programming, objects, generics, collections, lambda expressions, concurrency, functional programming, and more.
Preface xv
Acknowledgments xix
Chapter 1: The Java SE 8 Stream Library 1
1.1 From Iterating to Stream Operations 2
1.2 Stream Creation 5
1.3 The filter, map, and flatMap Methods 9
1.4 Extracting Substreams and Concatenating Streams 10
1.5 Other Stream Transformations 11
1.6 Simple Reductions 12
1.7 The Optional Type 13
1.8 Collecting Results 19
1.9 Collecting into Maps 24
1.10 Grouping and Partitioning 28
1.11 Downstream Collectors 29
1.12 Reduction Operations 33
1.13 Primitive Type Streams 36
1.14 Parallel Streams 41
Chapter 2: Input and Output 47
2.1 Input/Output Streams 48
2.2 Text Input and Output 60
2.3 Reading and Writing Binary Data 69
2.4 Object Input/Output Streams and Serialization 80
2.5 Working with Files 100
2.6 Memory-Mapped Files 116
2.7 Regular Expressions 128
Chapter 3: XML 143
3.1 Introducing XML 144
3.2 Parsing an XML Document 149
3.3 Validating XML Documents 162
3.4 Locating Information with XPath 190
3.5 Using Namespaces 196
3.6 Streaming Parsers 199
3.7 Generating XML Documents 208
3.8 XSL Transformations 222
Chapter 4: Networking 233
4.1 Connecting to a Server 233
4.2 Implementing Servers 241
4.3 Interruptible Sockets 250
4.4 Getting Web Data 257
4.5 Sending E-Mail 277
Chapter 5: Database Programming 281
5.1 The Design of JDBC 282
5.2 The Structured Query Language 285
5.3 JDBC Configuration 291
5.4 Working with JDBC Statements 297
5.5 Query Execution 309
5.6 Scrollable and Updatable Result Sets 321
5.7 Row Sets 328
5.8 Metadata 333
5.9 Transactions 344
5.10 Advanced SQL Types 347
5.11 Connection Management in Web and Enterprise Applications 349
Chapter 6: The Date and Time API 351
6.1 The Time Line 352
6.2 Local Dates 355
6.3 Date Adjusters 358
6.4 Local Time 360
6.5 Zoned Time 361
6.6 Formatting and Parsing 365
6.7 Interoperating with Legacy Code 369
Chapter 7: Internationalization 371
7.1 Locales 372
7.2 Number Formats 378
7.3 Currencies 384
7.4 Date and Time 385
7.5 Collation and Normalization 393
7.6 Message Formatting 400
7.7 Text Input and Output 404
7.8 Resource Bundles 408
7.9 A Complete Example 413
Chapter 8: Scripting, Compiling, and Annotation Processing 429
8.1 Scripting for the Java Platform 430
8.2 The Compiler API 443
8.3 Using Annotations 455
8.4 Annotation Syntax 462
8.5 Standard Annotations 470
8.6 Source-Level Annotation Processing 475
8.7 Bytecode Engineering 481
Chapter 9: Security 491
9.1 Class Loaders 492
9.2 Security Managers and Permissions 509
9.3 User Authentication 530
9.4 Digital Signatures 546
9.5 Encryption 567
Chapter 10: Advanced Swing 581
10.1 Lists 582
10.2 Tables 599
10.3 Trees 639
10.4 Text Components 681
10.5 Progress Indicators 719
10.6 Component Organizers and Decorators 731
Chapter 11: Advanced AWT 765
11.1 The Rendering Pipeline 766
11.2 Shapes 769
11.3 Areas 786
11.4 Strokes 788
11.5 Paint 797
11.6 Coordinate Transformations 799
11.7 Clipping 805
11.8 Transparency and Composition 807
11.9 Rendering Hints 817
11.10 Readers and Writers for Images 823
11.11 Image Manipulation 834
11.12 Printing 851
11.13 The Clipboard 887
11.14 Drag and Drop 903
11.15 Platform Integration 921
Chapter 12: Native Methods 939
12.1 Calling a C Function from a Java Program 940
12.2 Numeric Parameters and Return Values 947
12.3 String Parameters 949
12.4 Accessing Fields 956
12.5 Encoding Signatures 961
12.6 Calling Java Methods 963
12.7 Accessing Array Elements 970
12.8 Handling Errors 974
12.9 Using the Invocation API 980
12.10 A Complete Example: Accessing the Windows Registry 985
Index 1002