Core Java: Fundamentals, Volume 1, 11th edition
Published by Pearson (May 15, 2018) © 2019
- Cay S. Horstmann San Jose State
eTextbook
- Available for purchase from all major ebook resellers, including InformIT.com.
- To request a review copy, click on the "Request a Review Copy" button.
Core Java has long been recognized as the leading no-nonsense tutorial and reliable reference. It carefully explains the most important language and library features and shows how to build real-world applications with thoroughly tested examples. The example programs have been carefully crafted to be easy to understand as well as useful in practice, so you can rely on them as the starting point for your own code. All of the code examples have been rewritten to reflect modern Java best practices and code style. The critical new features introduced with Java SE 9, 10, and 11 are all thoroughly explored with the depth and completeness that readers expect from this title. Core Java Volume I walks readers through the all details and takes a deep dive into the most critical features of the language and core libraries.
- Master foundational techniques, idioms, and best practices for writing superior Java code
- Leverage the power of interfaces, lambda expressions, and inner classes
- Harden programs through effective exception handling and debugging
- Write safer, more reusable code with generic programming
- Improve performance and efficiency with Java’s standard collections
- Build cross-platform GUIs with the Swing toolkit
- Fully utilize multicore processors with Java’s improved concurrency
Preface xix
Acknowledgments xxv
Chapter 1: An Introduction to Java 1
1.1 Java as a Programming Platform 1
1.2 The Java “White Paper” Buzzwords 2
1.3 Java Applets and the Internet 9
1.4 A Short History of Java 10
1.5 Common Misconceptions about Java 13
Chapter 2: The Java Programming Environment 17
2.1 Installing the Java Development Kit 18
2.2 Using the Command-Line Tools 23
2.3 Using an Integrated Development Environment 29
2.4 JShell 32
Chapter 3: Fundamental Programming Structures in Java 37
3.1 A Simple Java Program 38
3.2 Comments 41
3.3 Data Types 42
3.4 Variables and Constants 48
3.5 Operators 52
3.6 Strings 62
3.7 Input and Output 75
3.8 Control Flow 86
3.9 Big Numbers 105
3.10 Arrays 108
Chapter 4: Objects and Classes 125
4.1 Introduction to Object-Oriented Programming 126
4.2 Using Predefined Classes 131
4.3 Defining Your Own Classes 141
4.4 Static Fields and Methods 156
4.5 Method Parameters 163
4.6 Object Construction 170
4.7 Packages 180
4.8 JAR Files 192
4.9 Documentation Comments 198
4.10 Class Design Hints 204
Chapter 5: Inheritance 207
5.1 Classes, Superclasses, and Subclasses 208
5.2 Object: The Cosmic Superclass 232
5.3 Generic Array Lists 248
5.4 Object Wrappers and Autoboxing 256
5.5 Methods with a Variable Number of Parameters 260
5.6 Enumeration Classes 261
5.7 Reflection 264
5.8 Design Hints for Inheritance 290
Chapter 6: Interfaces, Lambda Expressions, and Inner Classes 295
6.1 Interfaces 296
6.2 Lambda Expressions 322
6.3 Inner Classes 340
6.4 Service Loaders 360
6.5 Proxies 362
Chapter 7: Exceptions, Assertions, and Logging 371
7.1 Dealing with Errors 372
7.2 Catching Exceptions 381
7.3 Tips for Using Exceptions 396
7.4 Using Assertions 399
7.5 Logging 403
7.6 Debugging Tips 425
Chapter 8: Generic Programming 431
8.1 Why Generic Programming? 432
8.2 Defining a Simple Generic Class 434
8.3 Generic Methods 437
8.4 Bounds for Type Variables 438
8.5 Generic Code and the Virtual Machine 441
8.6 Restrictions and Limitations 447
8.7 Inheritance Rules for Generic Types 457
8.8 Wildcard Types 459
8.9 Reflection and Generics 467
Chapter 9: Collections 481
9.1 The Java Collections Framework 482
9.2 Interfaces in the Collections Framework 492
9.3 Concrete Collections 494
9.4 Maps 519
9.5 Views and Wrappers 532
9.6 Algorithms 541
9.7 Legacy Collections 552
Chapter 10: Graphical User Interface Programming 565
10.1 A History of Java User Interface Toolkits 565
10.2 Displaying Frames 567
10.3 Displaying Information in a Component 574
10.4 Event Handling 598
10.5 The Preferences API 624
Chapter 11: User Interface Components with Swing 631
11.1 Swing and the Model-View-Controller Design Pattern 632
11.2 Introduction to Layout Management 636
11.3 Text Input 643
11.4 Choice Components 651
11.5 Menus 671
11.6 Sophisticated Layout Management 690
11.7 Dialog Boxes 706
Chapter 12: Concurrency 733
12.1 What Are Threads? 734
12.2 Thread States 739
12.3 Thread Properties 743
12.4 Synchronization 750
12.5 Thread-Safe Collections 781
12.6 Tasks and Thread Pools 800
12.7 Asynchronous Computations 814
12.8 Processes 831
Appendix: Java Keywords 839
Index 843
Need help? Get in touch