The Java Programming Language, 4th Edition

3.8 avg rating
( 160 ratings by Goodreads )
 
9780321349804: The Java Programming Language, 4th Edition

Direct from the creators of the Java™ programming language, the completely revised fourth edition of The Java™ Programming Language is an indispensable resource for novice and advanced programmers alike.

Developers around the world have used previous editions to quickly gain a deep understanding of the Java programming language, its design goals, and how to use it most effectively in real-world development. Now, Ken Arnold, James Gosling, and David Holmes have updated this classic to reflect the major enhancements in Java™ 2 Standard Edition 5.0 (J2SE™ 5.0).

The authors systematically cover most classes in Java’s main packages, java.lang.*, java.util, and java.io, presenting in-depth explanations of why these classes work as they do, with informative examples. Several new chapters and major sections have been added, and every chapter has been updated to reflect today’s best practices for building robust, efficient, and maintainable Java software.

Key changes in this edition include

  • New chapters on generics, enums, and annotations, the most powerful new language features introduced in J2SE 5.0
  • Changes to classes and methods throughout to reflect the addition of generics
  • Major new sections on assertions and regular expressions
  • Coverage of all the new language features, from autoboxing and variable argument methods to the enhanced for-loop and covariant return types
  • Coverage of key new classes, such as Formatter and Scanner

The Java™ Programming Language, Fourth Edition, is the definitive tutorial introduction to the Java language and essential libraries and an indispensable reference for all programmers, including those with extensive experience. It brings together insights you can only get from the creators of Java: insights that will help you write software of exceptional quality.

"synopsis" may belong to another edition of this title.

About the Author:

Ken Arnold, formerly senior engineer at Sun Microsystems Laboratories, is a leading expert in object-oriented design and implementation. He was one of the original architects of the Jini™ technology, and the lead engineer of Sun's JavaSpaces™ technology.

James Gosling is a Fellow and Chief Technology Officer of Sun's Developer Products group, the creator of the Java programming language, and one of the computer industry's most noted programmers. He is the 1996 recipient of Software Development's "Programming Excellence Award." He previously developed NeWS, Sun's network-extensible window system, and was a principal in the Andrew project at Carnegie Mellon University, where he earned a Ph.D. in computer science.

David Holmes is director of DLTeCH Pty Ltd, located in Brisbane, Australia. He specializes in synchronization and concurrency and was a member of the JSR-166 expert group that developed the new concurrency utilities. He is also a contributor to the update of the Real-Time Specification for Java, and has spent the past few years working on an implementation of that specification.



Excerpt. Reprinted by permission. All rights reserved.:

Beautiful buildings are more than scientific. They are true organisms,spiritually conceived; works of art, using the best technology by inspiration rather than the idiosyncrasies of mere taste or any averaging by the committee mind.
—Frank Lloyd Wright

The Java™ programming language has been warmly received by the world community of software developers and Internet content providers. Users of the Internet and World Wide Web benefit from access to secure, platform-independent applications that can come from anywhere on the Internet. Software developers who create applications in the Java programming language benefit by developing code only once, with no need to “port” their applications to every software and hardware platform.

For many, the language was known first as a tool to create applets for the World Wide Web. An applet is a mini-application that runs inside a Web page. An applet can perform tasks and interact with users on their browser pages without using resources from the Web server after being downloaded. Some applets may, of course, talk with the server to do their job, but that’s their business.

The Java programming language is indeed valuable for distributed network environments like the Web. However, it goes well beyond this domain to provide a powerful general-purpose programming language suitable for building a variety of applications that either do not depend on network features or want them for different reasons. The ability to execute downloaded code on remote hosts in a secure manner is a critical requirement for many organizations.

Other groups use it as a general-purpose programming language for projects in which machine independence is less important. Ease of programming and safety features help you quickly produce working code. Some common programming errors never occur because of features like garbage collection and type-safe references. Support for multithreading caters to modern network-based and graphical user interface-based applications that must attend to multiple tasks simultaneously, and the mechanisms of exception handling ease the task of dealing with error conditions. While the built-in tools are powerful, it is a simple language in which programmers can quickly become proficient.

The Java programming language is designed for maximum portability with as few implementation dependencies as possible. An int, for example, is a 32-bit signed two’s-complement integer in all implementations, irrespective of the CPU architecture on which the program executes. Defining everything possible about the language and its runtime environment enables users to run compiled code anywhere and share code with anyone who has a Java runtime environment.

About This Book

This book teaches the Java programming language to people who are familiar with basic programming concepts. It explains the language without being arduously formal or complete. This book is not an introduction to object-oriented programming, although some issues are covered to establish a common terminology. Other books in this series and much online documentation focus on applets, graphical interfaces, Web sites, databases, components, and other specific kinds of programming tasks. For other references, see “Further Reading” on page 755.

This fourth edition provides integrated coverage of the Java programming language as provided by the Java™ 2 Platform Standard Edition 5.0 and specified by the Java™ Language Specification, Third Edition. It also covers most of the classes in the main packages (java.lang, java.util, java.io) as implemented in the J2SE™ Development Kit 5.0 (more commonly known as JDK 5.0, or in the older nomenclature JDK 1.5.0).

If you have already read the third edition of this book, you will find some major changes, both in the language and the book, since the 1.3 release that the third edition covered. There are new chapters on generics, enums, and annotations—the major new language features introduced in the 5.0 release—and major new sections on assertions and regular expressions. Some existing material has been restructured to accommodate other changes and to improve the general flow of the text—such as introducing the new boxing and unboxing conversions. But every single chapter has been updated in some way, whether it is a new language feature like variable argument methods; the new enhanced for loop construct; a new class such as Formatter for formatting text output; or changes to classes and methods caused by the addition of generics (such as the collections utilities and the reflection classes)—change permeates this entire fourth edition.

The Java programming language shares many features common to most programming languages in use today. The language should look familiar to C and C++ programmers because it was designed with C and C++ constructs where the languages are similar. That said, this book is neither a comparative analysis nor a “bridge” tutorial—no knowledge of C or C++ is assumed. C++ programmers, especially, may be as hindered by what they must unlearn as they are helped by their knowledge.

Chapter 1—A Quick Tour—gives a quick overview of the language. Programmers who are unfamiliar with object-oriented programming notions should read the quick tour, while programmers who are already familiar with object-oriented programming paradigms will find the quick tour a useful introduction to the object-oriented features of the language. The quick tour introduces some of the basic language features on which examples through the rest of the book are built.

Chapters 2 through 6 cover the object-oriented core features of the language, namely, class declarations that define components of a program, and objects manufactured according to class definitions. Chapter 2—Classes and Objects—describes the basis of the language: classes. Chapter 3—Extending Classes—describes how an existing class can be extended, or subclassed, to create a new class with additional data and behavior. Chapter 4—Interfaces—describes how to declare interface types that are abstract descriptions of behavior that provide maximum flexibility for class designers and implementors. Chapter 5—Nested Classes and Interfaces—describes how classes and interfaces can be declared inside other classes and interfaces, and the benefits that provides. Finally, Chapter 6—Enumeration Types—covers the definition and use of type-safe enumeration constants.

Chapters 7 through 10 cover standard constructs common to most languages. Chapter 7—Tokens, Values, and Variables—describes the tokens of the language from which statements are constructed, the types defined by the language and their allowed values, and the variables that store data in objects, arrays, or locally within methods. Chapter 8—Primitives as Types—explores the relationship between the primitive types and objects of their corresponding wrapper classes, and how boxing and unboxing can transparently convert between them. Chapter 9—Operators and Expressions—describes the basic operators of the language, how these operators are used to build expressions, and how expressions are evaluated. Chapter 10—Control Flow—describes how control statements direct the order of statement execution.

Chapter 11—Generic Types—describes generic types: how they are written and used, their power, and their limitations.

Chapter 12—Exceptions and Assertions—describes the language’s powerful error-handling capabilities, and the use of assertions to validate the expected behavior of code.

Chapter 13—Strings and Regular Expressions—describes the built-in language and runtime support for String objects, the underlying character set support, and the powerful utilities for regular expression matching.

Chapter 14—Threads—explains the language’s view of multithreading. Many applications, such as graphical interface-based software, must attend to multiple tasks simultaneously. These tasks must cooperate to behave correctly, and threads meet the needs of cooperative multitasking.

Chapter 15—Annotations—describes the annotation types used to document some of the extra-linguistic properties of classes and method.

Chapter 16—Reflection—describes the runtime type introspection mechanism and how you can construct and manipulate objects of unknown type dynamically at runtime.

Chapter 17—Garbage Collection and Memory—talks about garbage collection, finalization, and lower-strength reference objects.

Chapter 18—Packages—describes how you can group collections of classes and interfaces into separate packages.

Chapter 19—Documentation Comments—shows how to write reference documentation in comments.

Chapters 20 through 24 cover the main packages. Chapter 20—The I/O Package—describes the input/output system, which is based on streams. Chapter 21—Collections—covers the collection or container classes such as sets and lists. Chapter 22—Miscellaneous Utilities—covers the rest of the utility classes such as bit sets, formatted output, text scanning, and random number generation. Chapter 23—System Programming—leads you through the system classes that provide access to features of the underlying platform. Chapter 24—Internationalization and Localization—covers some of the tools used to create programs that can run in many linguistic and cultural environments.

Chapter 25—Standard Packages—briefly explores the packages that are part of the standard platform, giving overviews of those packages not covered in more detail in this book.

Appendix A—Application Evolution—looks at some of the issues involved in dealing with the evolution of applications and the Java platform, and the impact this has on some of the new language features.

Appendix B—Useful Tables—has tables of information that you may find useful for quick reference.

Finally, Further Reading lists works that may be interesting for further reading on complete details, object orientation, programming with threads, software design, and other topics.

Examples and Documentation

All the code examples in the text have been compiled and run on the latest version of the language available at the time the book was written, which was the JDK 1.5.0_02 product version. Only supported features are covered—deprecated types, methods, and fields are ignored except when unavoidable or when knowledge of the past is necessary to understand the present. We have also covered issues beyond writing programs that simply compile. Part of learning a language is to learn to use it well. For this reason, we have tried to show principles of good programming style and design.

In a few places we refer to online documentation. Development environments provide a way to automatically generate documentation (usually HTML documents) for a compiled class from its documentation comments. This documentation is normally viewed with a Web browser.

Results! Why, man, I have gotten a lot of results. I know several thousand things that won’t work.
—Thomas Edison

"About this title" may belong to another edition of this title.

Top Search Results from the AbeBooks Marketplace

1.

Arnold, KenGosling, JamesHolmes, David
Published by Prentice Hall
ISBN 10: 0321349806 ISBN 13: 9780321349804
New Quantity Available: > 20
Seller:
INDOO
(Avenel, NJ, U.S.A.)
Rating
[?]

Book Description Prentice Hall. Book Condition: New. Brand New. Bookseller Inventory # 0321349806

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 53.67
Convert Currency

Add to Basket

Shipping: US$ 3.50
Within U.S.A.
Destination, Rates & Speeds

2.

Arnold, Ken, Gosling, James, Holmes, Dav
Published by Addison-Wesley Professional (2005)
ISBN 10: 0321349806 ISBN 13: 9780321349804
New Paperback Quantity Available: 2
Seller:
Murray Media
(North Miami Beach, FL, U.S.A.)
Rating
[?]

Book Description Addison-Wesley Professional, 2005. Paperback. Book Condition: New. Never used!. Bookseller Inventory # P110321349806

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 73.08
Convert Currency

Add to Basket

Shipping: US$ 1.99
Within U.S.A.
Destination, Rates & Speeds

3.

Arnold, Ken, Gosling, James, Holmes, Dav
Published by Addison-Wesley Professional (2005)
ISBN 10: 0321349806 ISBN 13: 9780321349804
New Paperback Quantity Available: 2
Seller:
Save With Sam
(North Miami, FL, U.S.A.)
Rating
[?]

Book Description Addison-Wesley Professional, 2005. Paperback. Book Condition: New. Brand New!. Bookseller Inventory # VIB0321349806

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 73.08
Convert Currency

Add to Basket

Shipping: US$ 3.00
Within U.S.A.
Destination, Rates & Speeds

4.

James Gosling, David Holmes, Ken Arnold
Published by Pearson Education (US), United States (2005)
ISBN 10: 0321349806 ISBN 13: 9780321349804
New Paperback Quantity Available: 10
Seller:
The Book Depository US
(London, United Kingdom)
Rating
[?]

Book Description Pearson Education (US), United States, 2005. Paperback. Book Condition: New. 4th edition. Language: English . Brand New Book. Direct from the creators of the Java (TM) programming language, the completely revised fourth edition of The Java (TM) Programming Language is an indispensable resource for novice and advanced programmers alike. Developers around the world have used previous editions to quickly gain a deep understanding of the Java programming language, its design goals, and how to use it most effectively in real-world development. Now, Ken Arnold, James Gosling, and David Holmes have updated this classic to reflect the major enhancements in Java (TM) 2 Standard Edition 5.0 (J2SE (TM) 5.0).The authors systematically cover most classes in Java s main packages, java.lang.*, java.util, and java.io, presenting in-depth explanations of why these classes work as they do, with informative examples. Several new chapters and major sections have been added, and every chapter has been updated to reflect today s best practices for building robust, efficient, and maintainable Java software.Key changes in this edition includeNew chapters on generics, enums, and annotations, the most powerful new language features introduced in J2SE 5.0 Changes to classes and methods throughout to reflect the addition of generics Major new sections on assertions and regular expressions Coverage of all the new language features, from autoboxing and variable argument methods to the enhanced for-loop and covariant return types Coverage of key new classes, such as Formatter and ScannerThe Java (TM) Programming Language, Fourth Edition, is the definitive tutorial introduction to the Java language and essential libraries and an indispensable reference for all programmers, including those with extensive experience. It brings together insights you can only get from the creators of Java: insights that will help you write software of exceptional quality. Bookseller Inventory # BZV9780321349804

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 81.32
Convert Currency

Add to Basket

Shipping: FREE
From United Kingdom to U.S.A.
Destination, Rates & Speeds

5.

James Gosling, David Holmes, Ken Arnold
Published by Pearson Education (US), United States (2005)
ISBN 10: 0321349806 ISBN 13: 9780321349804
New Paperback Quantity Available: 10
Seller:
Book Depository hard to find
(London, United Kingdom)
Rating
[?]

Book Description Pearson Education (US), United States, 2005. Paperback. Book Condition: New. 4th edition. Language: English . This book usually ship within 10-15 business days and we will endeavor to dispatch orders quicker than this where possible. Brand New Book. Direct from the creators of the Java (TM) programming language, the completely revised fourth edition of The Java (TM) Programming Language is an indispensable resource for novice and advanced programmers alike. Developers around the world have used previous editions to quickly gain a deep understanding of the Java programming language, its design goals, and how to use it most effectively in real-world development. Now, Ken Arnold, James Gosling, and David Holmes have updated this classic to reflect the major enhancements in Java (TM) 2 Standard Edition 5.0 (J2SE (TM) 5.0).The authors systematically cover most classes in Java s main packages, java.lang.*, java.util, and java.io, presenting in-depth explanations of why these classes work as they do, with informative examples. Several new chapters and major sections have been added, and every chapter has been updated to reflect today s best practices for building robust, efficient, and maintainable Java software.Key changes in this edition includeNew chapters on generics, enums, and annotations, the most powerful new language features introduced in J2SE 5.0 Changes to classes and methods throughout to reflect the addition of generics Major new sections on assertions and regular expressions Coverage of all the new language features, from autoboxing and variable argument methods to the enhanced for-loop and covariant return types Coverage of key new classes, such as Formatter and ScannerThe Java (TM) Programming Language, Fourth Edition, is the definitive tutorial introduction to the Java language and essential libraries and an indispensable reference for all programmers, including those with extensive experience. It brings together insights you can only get from the creators of Java: insights that will help you write software of exceptional quality. Bookseller Inventory # BZV9780321349804

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 83.54
Convert Currency

Add to Basket

Shipping: FREE
From United Kingdom to U.S.A.
Destination, Rates & Speeds

6.

Ken Arnold; James Gosling; David Holmes
Published by Addison-Wesley Professional (2005)
ISBN 10: 0321349806 ISBN 13: 9780321349804
New Softcover Quantity Available: > 20
Seller:
Palexbooks
(Sanford, NC, U.S.A.)
Rating
[?]

Book Description Addison-Wesley Professional, 2005. Book Condition: New. Brand new! Please provide a physical shipping address. Bookseller Inventory # 9780321349804

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 87.75
Convert Currency

Add to Basket

Shipping: US$ 3.00
Within U.S.A.
Destination, Rates & Speeds

7.

Ken Arnold; James Gosling; David Holmes
Published by Addison-Wesley Professional (2005)
ISBN 10: 0321349806 ISBN 13: 9780321349804
New Paperback Quantity Available: 1
Seller:
Irish Booksellers
(Rumford, ME, U.S.A.)
Rating
[?]

Book Description Addison-Wesley Professional, 2005. Paperback. Book Condition: New. book. Bookseller Inventory # M0321349806

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 106.05
Convert Currency

Add to Basket

Shipping: FREE
Within U.S.A.
Destination, Rates & Speeds

8.

Ken Arnold/ James Gosling/ David Holmes
Published by Addison-Wesley (2005)
ISBN 10: 0321349806 ISBN 13: 9780321349804
New Paperback Quantity Available: 1
Seller:
Revaluation Books
(Exeter, United Kingdom)
Rating
[?]

Book Description Addison-Wesley, 2005. Paperback. Book Condition: Brand New. 4th edition. 891 pages. 9.00x7.50x1.50 inches. In Stock. Bookseller Inventory # zk0321349806

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 106.58
Convert Currency

Add to Basket

Shipping: US$ 8.01
From United Kingdom to U.S.A.
Destination, Rates & Speeds