HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
The Java®Tutorial, Fifth Edition, is based on Release 7 of the Java Platform Standard Edition. This revised and updated edition introduces the new features added to the platform, including a section on NIO.2, the new file I/O API, and information on migrating legacy code to the new API. The deployment coverage has also been expanded, with new chapters such as “Doing More with Rich Internet Applications” and “Deployment in Depth,” and a section on the fork/join feature has been added to the chapter on concurrency. Information reflecting Project Coin developments, including the new try-with-resources statement, the ability to catch more than one type of exception with a single exception handler, support for binary literals, and diamond syntax, which results in cleaner generics code, has been added where appropriate. The chapters covering generics, Java Web Start, and applets have also been updated. In addition, if you plan to take one of the Java SE 7 certification exams, this guide can help. A special appendix, “Preparing for Java Programming Language Certification,” lists the three exams available, details the items covered on each exam, and provides cross-references to where more information about each topic appears in the text. All of the material has been thoroughly reviewed by members of Oracle Java engineering to ensure that the information is accurate and up to date.
Download the sample pages (includes Chapter 6 and Index)
Preface xxi
About the Authors xxv
Chapter 1: Getting Started 1
The Java Technology Phenomenon 1
The “Hello World!” Application 5
A Closer Look at the “Hello World!” Application 22
Common Problems (and Their Solutions) 25
Compiler Problems 25
Runtime Problems 27
Questions and Exercises: Getting Started 29
Chapter 2: Object-Oriented Programming Concepts 31
What Is an Object? 32
What Is a Class? 34
What Is Inheritance? 36
What Is an Interface? 37
What Is a Package? 38
Questions and Exercises: Object- Oriented Programming Concepts 38
Chapter 3: Language Basics 41
Variables 42
Operators 55
Expressions, Statements, and Blocks 65
Control Flow Statements 68
Chapter 4: Classes and Objects 85
Classes 86
Objects 98
More on Classes 106
Nested Classes 120
Enum Types 126
Annotations 129
Chapter 5: Interfaces and Inheritance 135
Interfaces 135
Inheritance 143
Chapter 6: Generics 163
Why Use Generics? 164
Generic Types 164
Generic Methods 170
Bounded Type Parameters 171
Generics, Inheritance, and Subtypes 173
Type Inference 176
Wildcards 179
Type Erasure 188
Restrictions on Generics 196
Questions and Exercises: Generics 200
Chapter 7: Packages 203
Creating a Package 205
Naming a Package 206
Using Package Members 207
Managing Source and Class Files 211
Questions and Exercises: Creating and Using Packages 214
Chapter 8: Numbers and Strings 217
Numbers 217
Characters 234
Strings 236
Questions and Exercises: Characters and Strings 254
Chapter 9: Exceptions 257
What Is an Exception? 258
The Catch or Specify Requirement 258
Catching and Handling Exceptions 261
Specifying the Exceptions Thrown by a Method 272
How to Throw Exceptions 273
Unchecked Exceptions: The Controversy 279
Advantages of Exceptions 280
Summary of Exceptions 285
Questions and Exercises: Exceptions 285
Chapter 10: Basic I/O and NIO.2 289
I/O Streams 289
File I/O (Featuring NIO.2) 309
Summary of Basic I/O and NIO.2 366
Questions and Exercises: Basic I/O and NIO.2 368
Chapter 11: Collections 371
Introduction to Collections 372
Interfaces 374
Implementations 418
Algorithms 432
Custom Collection Implementations 437
Interoperability 440
Chapter 12: Concurrency 445
Processes and Threads 446
Thread Objects 447
Synchronization 453
Liveness 459
Guarded Blocks 461
Immutable Objects 465
High-Level Concurrency Objects 469
Questions and Exercises: Concurrency 480
Chapter 13: Regular Expressions 483
Introduction 484
Test Harness 485
String Literals 486
Character Classes 488
Predefined Character Classes 492
Quantifiers 495
Capturing Groups 500
Boundary Matchers 502
Methods of the Pattern Class 504
Methods of the Matcher Class 509
Methods of the PatternSyntaxException Class 515
Unicode Support 517
Additional Resources 518
Questions and Exercises: Regular Expressions 519
Chapter 14: The Platform Environment 521
Configuration Utilities 521
System Utilities 529
PATH and CLASSPATH 535
Questions and Exercises: The Platform Environment 540
Chapter 15: Packaging Programs in JAR Files 541
Using JAR Files: The Basics 542
Working with Manifest Files: The Basics 553
Signing and Verifying JAR Files 560
Using JAR-Related APIs 567
Questions: Packaging Programs in JAR Files 573
Chapter 16: Java Web Start 575
Developing a Java Web Start Application 576
Deploying a Java Web Start Application 579
Displaying a Customized Loading Progress Indicator 581
Running a Java Web Start Application 585
Java Web Start and Security 586
Common Java Web Start Problems 587
Questions and Exercises: Java Web Start 588
Chapter 17: Applets 591
Getting Started with Applets 591
Doing More with Applets 603
Displaying a Customized Loading Progress Indicator 618
Solving Common Applet Problems 632
Questions and Exercises: Applets 633
Chapter 18: Doing More with Java Rich Internet Applications 635
Setting Trusted Arguments and Secure Properties 635
JNLP API 638
Cookies 643
Customizing the Loading Experience 646
Security in RIAs 646
Questions and Exercises: Doing More with Java Rich Internet Applications 647
Chapter 19: Deployment in Depth 649
Deployment Toolkit 649
Java Network Launch Protocol 659
Deployment Best Practices 667
Questions and Exercises: Deployment In Depth 673
Appendix: Preparing for Java Programming Language Certification 675
Programmer Level I Exam 675
Programmer Level II Exam 680
Java SE 7 Upgrade Exam 688
Index 693