SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
Fully updated to reflect Java SE 7 language changes, Core Java™, Volume I—Fundamentals, Ninth Edition, is the definitive guide to the Java platform.
Designed for serious programmers, this reliable, unbiased, no-nonsense tutorial illuminates key Java language and library features with thoroughly tested code examples. As in previous editions, all code is easy to understand, reflects modern best practices, and is specifically designed to help jumpstart your projects.
Volume I quickly brings you up-to-speed on Java SE 7 core language enhancements, including the diamond operator, improved resource handling, and catching of multiple exceptions. All of the code examples have been updated to reflect these enhancements, and complete descriptions of new SE 7 features are integrated with insightful explanations of fundamental Java concepts. You’ll learn all you need to be productive with
For detailed coverage of advanced features, including the new API for file input/output and enhancements to the concurrency utilities, look for Core Java™, Volume II—Advanced Features, Ninth Edition (ISBN-13: 978-0-13-708160-8).
Working with Interfaces and Inner Classes in Java
Download the sample pages (includes Chapter 6 and Index)
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 Choosing a Development Environment 24
2.3 Using the Command-Line Tools 25
2.4 Using an Integrated Development Environment 28
2.5 Running a Graphical Application 33
2.6 Building and Running Applets 36
Chapter 3: Fundamental Programming Structures in Java 41
3.1 A Simple Java Program 42
3.2 Comments 45
3.3 Data Types 46
3.4 Variables 52
3.5 Operators 55
3.6 Strings 64
3.7 Input and Output 76
3.8 Control Flow 86
3.9 Big Numbers 105
3.10 Arrays 107
Chapter 4: Objects and Classes 125
4.1 Introduction to Object-Oriented Programming 126
4.2 Using Predefined Classes 132
4.3 Defining Your Own Classes 145
4.4 Static Fields and Methods 157
4.5 Method Parameters 164
4.6 Object Construction 171
4.7 Packages 182
4.8 The Class Path 190
4.9 Documentation Comments 193
4.10 Class Design Hints 199
Chapter 5: Inheritance 203
5.1 Classes, Superclasses, and Subclasses 204
5.2 Object: The Cosmic Superclass 228
5.3 Generic Array Lists 243
5.4 Object Wrappers and Autoboxing 251
5.5 Methods with a Variable Number of Parameters 254
5.6 Enumeration Classes 256
5.7 Reflection 258
5.8 Design Hints for Inheritance 282
Chapter 6: Interfaces and Inner Classes 285
6.1 Interfaces 286
6.2 Object Cloning 295
6.3 Interfaces and Callbacks 302
6.4 Inner Classes 305
6.5 Proxies 326
Chapter 7: Graphics Programming 333
7.1 Introducing Swing 334
7.2 Creating a Frame 339
7.3 Positioning a Frame 342
7.4 Displaying Information in a Component 350
7.5 Working with 2D Shapes 356
7.6 Using Color 365
7.7 Using Special Fonts for Text 369
7.8 Displaying Images 378
Chapter 8: Event Handling 383
8.1 Basics of Event Handling 383
8.2 Actions 403
8.3 Mouse Events 411
8.4 The AWT Event Hierarchy 419
Chapter 9: User Interface Components with Swing 425
9.1 Swing and the Model-View-Controller Design Pattern 426
9.2 Introduction to Layout Management 433
9.3 Text Input 443
9.4 Choice Components 452
9.5 Menus 473
9.6 Sophisticated Layout Management 492
9.7 Dialog Boxes 522
Chapter 10: Deploying Applications and Applets 565
10.1 JAR Files 566
10.2 Java Web Start 574
10.3 Applets 591
10.4 Storage of Application Preferences 610
Chapter 11: Exceptions, Assertions, Logging, and Debugging 625
11.1 Dealing with Errors 626
11.2 Catching Exceptions 635
11.3 Tips for Using Exceptions 649
11.4 Using Assertions 653
11.5 Logging 657
11.6 Debugging Tips 677
11.7 Tips for Troubleshooting GUI Programs 682
11.8 Using a Debugger 690
Chapter 12: Generic Programming 697
12.1 Why Generic Programming? 698
12.2 Defining a Simple Generic Class 700
12.3 Generic Methods 702
12.4 Bounds for Type Variables 704
12.5 Generic Code and the Virtual Machine 706
12.6 Restrictions and Limitations 712
12.7 Inheritance Rules for Generic Types 721
12.8 Wildcard Types 723
12.9 Reflection and Generics 731
Chapter 13: Collections 741
13.1 Collection Interfaces 741
13.2 Concrete Collections 751
13.3 The Collections Framework 787
13.4 Algorithms 801
13.5 Legacy Collections 810
Chapter 14: Multithreading 819
14.1 What Are Threads? 820
14.2 Interrupting Threads 833
14.3 Thread States 836
14.4 Thread Properties 839
14.5 Synchronization 843
14.6 Blocking Queues 877
14.7 Thread-Safe Collections 886
14.8 Callables and Futures 890
14.9 Executors 895
14.10 Synchronizers 905
14.11 Threads and Swing 909
Appendix: Java Keywords 925
Index 929