Preface....12
To the Reader....12
A Tour of This Book....15
Conventions....19
Acknowledgments....22
1.1. From Iterating to Stream Operations....25
1.2. Stream Creation....30
1.3. The filter, map, and flatMap Methods....43
1.4. Extracting Substreams and Combining Streams....49
1.5. Other Stream Transformations....51
1.6. Simple Reductions....54
1.7. The Optional Type....57
1.8. Collecting Results....74
1.9. Collecting into Maps....84
1.10. Grouping and Partitioning....92
1.11. Downstream Collectors....94
1.12. Reduction Operations....105
1.13. Primitive Type Streams....110
1.14. Parallel Streams....121
2. Input and Output....131
2.1. Input/Output Streams....131
2.2. Reading and Writing Binary Data....180
2.3. Object Input/Output Streams and Serialization....200
2.4. Working with Files....258
2.5. Memory-Mapped Files....293
2.6. File Locking....312
2.7. Regular Expressions....321
3. XML....357
3.1. Introducing XML....357
3.2. The Structure of an XML Document....362
3.3. Parsing an XML Document....368
3.4. Validating XML Documents....386
3.5. Locating Information with XPath....423
3.6. Using Namespaces....433
3.7. Streaming Parsers....439
3.8. Generating XML Documents....458
3.9. XSL Transformations....478
4. Networking....498
4.1. Connecting to a Server....498
4.2. Implementing Servers....514
4.3. Getting Web Data....543
4.4. The HTTP Client....582
4.5. The Simple HTTP Server....600
4.6. Sending E-Mail....610
5. Database Programming....618
5.1. The Design of JDBC....619
5.2. The Structured Query Language....624
5.3. JDBC Configuration....636
5.4. Working with JDBC Statements....647
5.5. Query Execution....668
5.6. Scrollable and Updatable Result Sets....691
5.7. Row Sets....706
5.8. Metadata....714
5.9. Transactions....730
5.10. Connection Management in Web and Enterprise Applications....741
6. The Date and Time API....746
6.1. The Time Line....746
6.2. Local Dates....755
6.3. Date Adjusters....765
6.4. Local Time....768
6.5. Zoned Time....771
6.6. Formatting and Parsing....780
6.7. Interoperating with Legacy Code....792
7. Internationalization....795
7.1. Locales....796
7.2. Number Formats....810
7.3. Date and Time....829
7.4. Collation and Normalization....837
7.5. Message Formatting....848
7.6. Text Boundaries....859
7.7. Text Input and Output....860
7.8. Resource Bundles....866
7.9. A Complete Example....876
8. Compiling and Scripting....885
8.1. The Compiler API....885
8.2. Scripting for the Java Platform....903
9. Security....922
9.1. Class Loaders....923
9.2. User Authentication....949
9.3. Digital Signatures....972
9.4. Encryption....1005
10. Graphical User Interface Programming....1029
10.1. A History of Java User Interface Toolkits....1029
10.2. Displaying Frames....1032
10.3. Displaying Information in a Component....1045
10.4. Event Handling....1089
10.5. The Preferences API....1138
11. User Interface Components with Swing....1151
11.1. Swing and the Model-View-Controller Design Pattern....1152
11.2. Introduction to Layout Management....1160
11.3. Text Input....1172
11.4. Choice Components....1188
11.5. Menus....1225
11.6. The Grid Bag Layout....1258
11.7. Custom Layout Managers....1280
11.8. Dialog Boxes....1287
12. Advanced Swing and Graphics....1337
12.1. Tables....1337
12.2. Working with Rows and Columns....1352
12.3. Cell Rendering and Editing....1385
12.4. Trees....1408
12.5. Advanced AWT....1481
12.6. Raster Images....1569
12.7. Printing....1621
13. Native Methods....1688
13.1. Calling a C Function from a Java Program....1690
13.2. Numeric Parameters and Return Values....1701
13.3. String Parameters....1706
13.4. Accessing Fields....1718
13.5. Encoding Signatures....1728
13.6. Calling Java Methods....1732
13.7. Accessing Array Elements....1747
13.8. Handling Errors....1755
13.9. Using the Invocation API....1765
13.10. A Complete Example: Accessing the Windows Registry....1775
13.11. Foreign Functions: A Glimpse into the Future....1804
Core Java is 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: Fundamentals, Thirteenth Edition, has been revised to cover the new features and enhancements in the Java 21 long-term support release. As always, all chapters have been completely updated, outdated material has been removed, and the new APIs are covered in detail.
This volume focuses on the advanced topics that a programmer needs to know for professional software development and includes authoritative coverage of enterprise programming, networking, databases, security, internationalization, and native methods, as well as complete chapters on the Streams, XML, Date and Time, Scripting, and Compilation APIs. In addition, the chapters on Swing and Graphics cover techniques that are applicable to both client-side user interfaces and server-side generation of graphics and images.
Cay S. Horstmann clearly explains sophisticated new features with depth and completeness and demonstrates how to use them to build professional-quality applications. Horstmann's thoroughly tested sample code reflects modern Java style and best practices. The examples are carefully crafted for easy understanding and maximum practical value, so you can rely on them to jump-start your own programs.
"This is the definitive reference and instructional work for Java and the Java ecosystem." --Andrew Binstock, Java Magazine
See Core Java, Volume I: Fundamentals, Thirteenth Edition, for expert coverage of Java programming fundamentals, including objects, generics, collections, lambda expressions, concurrency, and functional programming.