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.
This revised edition of the classic Core Java™, Volume I–Fundamentals, is the definitive guide to Java for serious programmers who want to put Java to work on real projects.
Fully updated for the new Java SE 6 platform, this no-nonsense tutorial and reliable reference illuminates the most important language and library features with thoroughly tested real-world 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 an outstanding starting point for your own code.
Volume I is designed to quickly bring you up to speed on what’s new in Java SE 6 and to help you make the transition as efficiently as possible, whether you’re upgrading from an earlier version of Java or migrating from another language. The authors concentrate on the fundamental concepts of the Java language, along with the basics of user-interface programming. You’ll find detailed, insightful coverage of
For detailed coverage of XML processing, networking, databases, internationalization, security, advanced AWT/Swing, and other advanced features, look for the forthcoming eighth edition of Core Java™, Volume II—Advanced Features (ISBN: 978-0-13-235479-0).
Understanding Inheritance in Java
Preface xix
Acknowledgments xxv
Chapter 1: An Introduction to Java 1
Java As a Programming Platform 2
The Java “White Paper” Buzzwords 2
Java Applets and the Internet 7
A Short History of Java 9
Common Misconceptions about Java 11
Chapter 2: The Java Programming Environment 15
Installing the Java Development Kit 16
Choosing a Development Environment 21
Using the Command-Line Tools 22
Using an Integrated Development Environment 25
Running a Graphical Application 28
Building and Running Applets 31
Chapter 3: Fundamental Programming Structures in Java 35
A Simple Java Program 36
Comments 39
Data Types 40
Variables 44
Operators 46
Strings 53
Input and Output 63
Control Flow 71
Big Numbers 88
Arrays 90
Chapter 4: Objects and Classes 105
Introduction to Object-Oriented Programming 106
Using Predefined Classes 111
Defining Your Own Classes 122
Static Fields and Methods 132
Method Parameters 138
Object Construction 144
Packages 15
The Class Path 160
Documentation Comments 162
Class Design Hints 167
Chapter 5: Inheritance 171
Classes, Superclasses, and Subclasses 172
Object: The Cosmic Superclass 192
Generic Array Lists 204
Object Wrappers and Autoboxing 211
Methods with a Variable Number of Parameters 214
Enumeration Classes 215
Reflection 217
Design Hints for Inheritance 238
Chapter 6: Interfaces and Inner Classes 241
Interfaces 242
Object Cloning 249
Interfaces and Callbacks 255
Inner Classes 258
Proxies 275
Chapter 7: Graphics Programming 281
Introducing Swing 282
Creating a Frame 285
Positioning a Frame 288
Displaying Information in a Component 294
Working with 2D Shapes 299
Using Color 307
Using Special Fonts for Text 310
Displaying Images 318
Chapter 8: Event Handling 323
Basics of Event Handling 324
Actions 342
Mouse Events 349
The AWT Event Hierarchy 357
Chapter 9: User Interface Components with Swing 361
Swing and the Model-View-Controller Design Pattern 362
Introduction to Layout Management 368
Text Input 377
Choice Components 385
Menus 406
Sophisticated Layout Management 424
Dialog Boxes 452
Chapter 10: Deploying Applications and Applets 493
JAR Files 494
Java Web Start 501
Applets 516
Storage of Application Preferences 539
Chapter 11: Exceptions, Logging, Assertions, and Debugging 551
Dealing with Errors 552
Catching Exceptions 559
Tips for Using Exceptions 568
Using Assertions 571
Logging 575
Debugging Tips 591
Using a Debugger 607
Chapter 12: Generic Programming 613
Why Generic Programming? 614
Definition of a Simple Generic Class 616
Generic Methods 618
Bounds for Type Variables 619
Generic Code and the Virtual Machine 621
Restrictions and Limitations 626
Inheritance Rules for Generic Types 630
Wildcard Types 632
Reflection and Generics 640
Chapter 13: Collections 649
Collection Interfaces 650
Concrete Collections 658
The Collections Framework 689
Algorithms 700
Legacy Collections 707
Chapter 14: Multithreading 715
What Are Threads? 716
Interrupting Threads 728
Thread States 730
Thread Properties 733
Synchronization 736
Blocking Queues 764
Thread-Safe Collections 771
Callables and Futures 774
Executors 778
Synchronizers 785
Threads and Swing 794
Appendix 809
Index 813