CHAPTER 1 Getting Started 1 About the Java Technology 2 How Will Java Technology Change My Life? 7 First Steps(Win32) 8 First Steps (UNIX/Linux) 16 First Steps (MacOS) 24 A Closer Look at HelloWorld 32 Questions and Exercises 41 Code Samples 43 CHAPTER 2 Object-Oriented Programming Concepts 45 What Is an Object? 46 What Is a Message? 48 What Is a Class? 49 What Is Inheritance? 52 What Is an Interface? 54 How Do These Concepts Translate into Code? 55 Summary 61 Questions and Exercises 62 Code Samples 63 CHAPTER 3 Language Basics 65 Variables 67 Operators 76 Expressions, Statements, and Blocks 94 Control Flow Statements 99 Code Samples 117 CHAPTER 4 Object Basics and Simple Data Objects 119 The Life Cycle of an Object 120 Characters and Strings 132 Numbers 149 Arrays 165 Code Samples 174 CHAPTER 5 Classes and Inheritance 177 Creating Classes 178 Managing Inheritance 204 Implementing Nested Classes 218 Code Samples 224 CHAPTER 6 Interfaces and Packages 227 Creating and Using Interfaces 228 Creating and Using Packages 234 Code Samples 242 CHAPTER 7 Handling Errors Using Exceptions 243 What Is an Exception? 244 The Catch or Specify Requirement 245 Catching and Handling Exceptions 246 Specifying the Exceptions Thrown by a Method 255 How to Throw Exceptions 255 Runtime Exceptions The Controversy 260 Advantages of Exceptions 260 Summary of Exceptions 265 Questions and Exercises 266 Code Samples 268 CHAPTER 8 Threads: Doing Two or More Tasks at Once 269 What Is a Thread? 271 Using the Timer and TimerTask Classes 273 Customizing a Thread's run Method 277 The Life Cycle of a Thread 281 Understanding Thread Priority 286 Synchronizing Threads 291 Grouping Threads 301 Summary of Threads 307 Questions and Exercises 309 Code Samples 310 CHAPTER 9 I/O: Reading and Writing 313 Overview of I/O Streams 314 Using the Streams 318 Object Serialization 334 Working with Random Access Files 340 And the Rest 345 Summary of Reading and Writing 346 Questions and Exercises 346 Code Samples 348 CHAPTER 10 User Interfaces That Swing 351 Overview of the Swing APl 352 Your First Swing Program 353 Example Two: SwingApplication 356 Example Three: CelsiusConverter 361 Example Four: LunarPhases 364 Example Five: VoteDialog 368 Layout Management 375 Threads and Swing 378 Visual Index to Swing Components 381 Summary 387 Questions and Exercises 388 Code Samples 390 APPENDIX A Common Problems and Their Solutions 391 Getting Started Problems 391 General Programming Problems 396 Applet Problems 397 User Interface Problems 399 APPENDIX B Internet-Ready Applets 407 Overview of Applets 409 AWT Components 419 Taking Advantage of the Applet API 423 Practical Considerations of Writing Applets 442 Finishing an Applet 454 Swing-Based Applets 457 Code Samples 463 APPENDIX C Collections 467 Introduction 468 Interfaces 470 Implementations 508 Algorithms 515 Custom Implementations 520 Interoperability 523 APPENDIX D Deprecated Thread Methods 527 Why Is Thread .stop Deprecated? 527 Why Are Thread. suspend and Thread. resume Deprecated? 530 What about Th read. destroy? 533 Why Is Runti me. runFi hal i zersOnExi t Deprecated? 534 APPENDIX E Reference 535 Java Programming Language Keywords 535 Operator Precedence 536 The <APPLET> Tag 537 POSIX Conventions for Command Line Arguments 539 Integrated Development Environments 540 Path Help 540 Index 545