Pearson Books home
Browse and buy books online Information for authors Browse our academic online catalogue Resources for schools and English language teaching Online courses and companion websites Online ordering for trade customers
The Reg Bookshop home > Java™ Programming Language, The
Business BooksBusiness
Careers & Personal Development BooksCareers & Personal Development
Computing BooksComputing
Economics BooksEconomics
Education BooksEducation
Engineering BooksEngineering
Finance and Accounting BooksFinance and Accounting
History BooksHistory
Humanities BooksHumanities
Languages BooksLanguages
Law & Criminology BooksLaw & Criminology
Leisure, Hospitality & Tourism BooksLeisure, Hospitality & Tourism
Life Skills BooksLife Skills
Marketing BooksMarketing
Mathematics BooksMathematics
Revision, York Notes & Study Skills BooksRevision, York Notes & Study Skills
Psychology BooksPsychology
Science BooksScience
Social Science BooksSocial Science
Java™ Programming Language, The

Java™ Programming Language, The


4th Edition

Ken Arnold, James Gosling, David Holmes

Aug 2005, Paperback, 928 pages 
ISBN13: 9780321349804
ISBN10: 0321349806
Special online offer - Save 30%
Was £35.99, Now £25.19 Buy Java™ Programming Language, The

Description  Back Cover  Contents  Features  Author  

Description

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.

top

Back Cover

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.

top

Contents
Preface  xxiChapter 1: A Quick Tour  1

1.1 Getting Started  1
1.2 Variables  3
1.3 Comments in Code  6
1.4 Named Constants  7
1.5 Unicode Characters  8
1.6 Flow of Control  9
1.7 Classes and Objects  12
1.8 Methods and Parameters  15
1.9 Arrays  18
1.10 String Objects  21
1.11 Extending a Class  24
1.12 Interfaces  27
1.13 Generic Types  29
1.14 Exceptions  32
1.15 Annotations  35
1.16 Packages  36
1.17 The Java Platform  38
1.18 Other Topics Briefly Noted  39

Chapter 2: Classes and Objects  41

2.1 A Simple Class  42
2.2 Fields  44
2.3 Access Control  47
2.4 Creating Objects  49
2.5 Construction and Initialization  50
2.6 Methods  56
2.7 this  68
2.8 Overloading Methods  69
2.9 Importing Static Member Names  71
2.10 The main Method  73
2.11 Native Methods  74

Chapter 3: Extending Classes  75

3.1 An Extended Class  76
3.2 Constructors in Extended Classes  80
3.3 Inheriting and Redefining Members  84
3.4 Type Compatibility and Conversion  90
3.5 What protected Really Means  93
3.6 Marking Methods and Classes final  96
3.7 Abstract Classes and Methods  97
3.8 The Object Class  99
3.9 Cloning Objects  101
3.10 Extending Classes: How and When  107
3.11 Designing a Class to Be Extended  108
3.12 Single Inheritance versus Multiple Inheritance  114

Chapter 4: Interfaces  117

4.1 A Simple Interface Example  118
4.2 Interface Declarations  120
4.3 Extending Interfaces  122
4.4 Working with Interfaces  126
4.5 Marker Interfaces  130
4.6 When to Use Interfaces  131

Chapter 5: Nested Classes and Interfaces  133

5.1 Static Nested Types  133
5.2 Inner Classes  136
5.3 Local Inner Classes  142
5.4 Anonymous Inner Classes  144
5.5 Inheriting Nested Types  146
5.6 Nesting in Interfaces  148
5.7 Implementation of Nested Types  149

Chapter 6: Enumeration Types  151

6.1 A Simple Enum Example  151
6.2 Enum Declarations  152
6.3 Enum Constant Declarations  154
6.4 java.lang.Enum  159
6.5 To Enum or Not  160

Chapter 7: Tokens, Values, and Variables  161

7.1 Lexical Elements  161
7.2 Types and Literals  166
7.3 Variables  169
7.4 Array Variables  173
7.5 The Meanings of Names  178

Chapter 8: Primitives as Types  183

8.1 Common Fields and Methods  184
8.2 Void  187
8.3 Boolean  187
8.4 Number  188
8.5 Character  192
8.6 Boxing Conversions  198

Chapter 9: Operators and Expressions  201

9.1 Arithmetic Operations  201
9.2 General Operators  204
9.3 Expressions  214
9.4 Type Conversions  216
9.5 Operator Precedence and Associativity  221
9.6 Member Access  223

Chapter 10: Control Flow 229

10.1 Statements and Blocks  229
10.2 if-else  230
10.3 switch  232
10.4 while and do-while  235
10.5 for  236
10.6 Labels  241
10.7 break  241
10.8 continue  244
10.9 return  245
10.10 What, No goto?  246

Chapter 11: Generic Types  247

11.1 Generic Type Declarations  250
11.2 Working with Generic Types  256
11.3 Generic Methods and Constructors  260
11.4 Wildcard Capture  264
11.5 Under the Hood: Erasure and Raw Types  267
11.6 Finding the Right Method--Revisited  272
11.7 Class Extension and Generic Types  276

Chapter 12: Exceptions and Assertions 279

12.1 Creating Exception Types  280
12.2 throw  282
12.3 The throws Clause  283
12.4  try, catch, and finally  286
12.5 Exception Chaining  291
12.6 Stack Traces  294
12.7 When to Use Exceptions  294
12.8 Assertions  296
12.9 When to Use Assertions  297
12.10 Turning Assertions On and Off  300

Chapter 13: Strings and Regular Expressions  305

13.1 Character Sequences  305
13.2 The String Class  306
13.3 Regular Expression Matching  321
13.4 The StringBuilder Class  330
13.5 Working with UTF-16  336

Chapter 14: Threads  337

14.1 Creating Threads  339
14.2 Using Runnable  341
14.3 Synchronization  345
14.4 wait, notifyAll, and notify  354
14.5 Details of Waiting and Notification  357
14.6 Thread Scheduling  358
14.7 Deadlocks  362
14.8 Ending Thread Execution  365
14.9 Ending Application Execution  369
14.10  The Memory Model: Synchronization and volatile  370
14.11 Thread Management, Security, and ThreadGroup  375
14.12 Threads and Exceptions  379
14.13 ThreadLocal Variables  382
14.14 Debugging Threads  384

Chapter 15: Annotations  387

15.1 A Simple Annotation Example  388
15.2 Annotation Types  389
15.3 Annotating Elements  392
15.4 Restricting Annotation Applicability  393
15.5 Retention Policies  395
15.6 Working with Annotations  395

Chapter 16: Reflection  397

16.1 The Class Class  399
16.2 Annotation Queries  414
16.3 The Modifier Class  416
16.4 The Member classes  416
16.5 Access Checking and AccessibleObject  417
16.6 The Field Class  418
16.7 The Method Class  420
16.8 Creating New Objects and the Constructor Class  423
16.9 Generic Type Inspection  426
16.10  Arrays  429
16.11 Packages  432
16.12 The Proxy Class  432
16.13 Loading Classes  435
16.14 Controlling Assertions at Runtime  444

Chapter 17: Garbage Collection and Memory  447

17.1 Garbage Collection  447
17.2 A Simple Model  448
17.3 Finalization  449
17.4 Interacting with the Garbage Collector  452
17.5 Reachability States and Reference Objects  454

Chapter 18: Packages  467

18.1 Package Naming  468
18.2 Type Imports  469
18.3 Package Access  471
18.4 Package Contents  475
18.5 Package Annotations  476
18.6 Package Objects and Specifications  477

Chapter 19: Documentation Comments  481

19.1 The Anatomy of a Doc Comment  482
19.2 Tags  483
19.3 Inheriting Method Documentation Comments  489
19.4 A Simple Example  491
19.5 External Conventions  496
19.6 Notes on Usage  497

Chapter 20: The I/O Package  499

20.1 Streams Overview  500
20.2 Byte Streams  501
20.3 Character Streams  507
20.4 InputStreamReader and OutputStreamWriter  512
20.5 A Quick Tour of the Stream Classes  514
20.6 The Data Byte Streams  537
20.7 Working with Files  540
20.8 Object Serialization  549
20.9 The IOException Classes  563
20.10 A Taste of New I/O  565

Chapter 21: Collections  567

21.1 Collections  567
21.2 Iteration  571
21.3 Ordering with Comparable and Comparator  574
21.4 The Collection Interface  575
21.5 Set and SortedSet  577
21.6 List  580
21.7 Queue  585
21.8 Map and SortedMap  587
21.9 enum Collections  594
21.10 Wrapped Collections and the Collections Class  597
21.11 Synchronized Wrappers and Concurrent Collections  602
21.12 The Arrays Utility Class  607
21.13 Writing Iterator Implementations  609
21.14 Writing Collection Implementations  611
21.15 The Legacy Collection Types  616
21.16 Properties  620

Chapter 22: Miscellaneous Utilities  623

22.1 Formatter  624
22.2 BitSet  632
22.3  Observer/Observable  635
22.4 Random  639
22.5 Scanner  641
22.6 StringTokenizer  651
22.7 Timer and TimerTask  653
22.8 UUID  656
22.9  Math and StrictMath  657

Chapter 23: System Programming  661

23.1 The System Class  662
23.2 Creating Processes  666
23.3 Shutdown  672
23.4 The Rest of Runtime  675
23.5 Security  677

Chapter 24: Internationalization and Localization  685

24.1 Locale  686
24.2 Resource Bundles  688
24.3 Currency  694
24.4 Time, Dates, and Calendars  695
24.5 Formatting and Parsing Dates and Times  703
24.6 Internationalization and Localization for Text  708

Chapter 25: Standard Packages 715

25.1 java.awt--The Abstract Window Toolkit  717
25.2 java.applet--Applets  720
25.3  java.beans--Components  721
25.4 java.math--Mathematics  722
25.5 java.net--The Network  724
25.6 java.rmi--Remote Method Invocation  727
25.7 java.security and Related Packages--Security Tools  732
25.8 java.sql--Relational Database Access  732
25.9 Utility Subpackages  733
25.10 javax.* --Standard Extensions  737
25.11 javax.accessibility--Accessibility for GUIs  737
25.12 javax.naming--Directory and Naming Services  738
25.13 javax.sound--Sound Manipulation  739
25.14 javax.swing--Swing GUI Components  740
25.15 org.omg.CORBA--CORBA APIs  740

Appendix A: Application Evolution  741

A.1 Language, Library, and Virtual Machine Versions  741
A.2 Dealing with Multiple Dialects  743
A.3 Generics: Reification, Erasure, and Raw Types  744

Appendix B: Useful Tables  749Further Reading  755Index  761

top

Features

The story of Java---direct from the creators and Godfather of Java, James Gosling!

° Completely revised for Java 2 Standard Edition 5.0

° Features perspective and commentary from the creators of the Java Programming Language

° Coverage on generics, autoboxing and all new features to J2SE 5.0

top

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.



top


Product Search

Articles & Resources

People also bought



Copyright Pearson EducationLegal Notice Privacy Notice